マジセミドライブ
ウェビナー関連のニュースやITサービス&ツールの最新情報を随時配信します。
OSS情報
2023.05.31
【OSS情報】Python用開発タスク自動化ツール「 tox 」
コンテンツ
【OSS情報】Python用開発タスク自動化ツール「 tox 」
toxの「概要」
「tox」(トックス)とは「Python用開発タスク自動化ツール」です。
「toxが作成したPython仮想環境」でテストやデプロイを実行できるため、
Pythonパッケージを「異なるPythonバージョン」や「異なる環境」でテストできます。
ユースケース
・テスト自動化 :「ビルドテスト」「動作テスト」「デプロイテスト」
・パッケージのインストール
・仮想環境管理
・Pythonプロジェクトの依存関係を管理
・継続的インテグレーションのサポート
・ドキュメント生成 など
開発目標
Pythonソフトウェアの「ビルド」「テスト」「デプロイ」のプロセスを簡素化するために、
「テスト自動化および標準化」を目指して開発されています。
toxの「特徴」
テスト実行
・さまざまな環境に対応 :「Python実装」「バージョン」「インストール依存関係」
・パッケージが正しくビルドおよびインストールされているかを確認
・テストツールを使用して各環境でテストを実行
・継続的統合サーバのフロントエンドとして機能
→tox.wiki →user_guide.html →main-features
効率化
・ボイラープレートを大幅に削減
・「CI」および「シェルベース」のテストを統合
・Pythonパッケージ用リポジトリ管理システム「devpi」との相互運用性
機能拡張
・Python用プラグインシステム「Pluggy」を使用
・フックを使用してデフォルトの動作をカスタマイズできる
構成ファイル
■優先順位付けされた3つの構成ファイルをサポート
①「tox.ini」
②「pyproject.toml」
③「setup.cfg」
環境オーケストレーター
・各種ツールの「セットアップおよび実行する方法」を定義する
・それぞれの環境をセットアップして起動できる
■利用可能な開発ツールの例
・テストランナー「pytest」
・リンター「flake8」
・フォーマッタ「black」「isort」
・ドキュメントジェネレーター「Sphinx」
・ビルドおよび公開ツール など
→tox.wiki →user_guide.html →#overview
動作の流れ
No | 動作 | 説明 |
---|---|---|
1 | 設定 | tox設定ファイルをロードし、環境変数などをマージ |
2 | 環境作成 | 「virtualenv」もしくは「runner」を使用 |
3 | 依存関係のインストール | ※プロジェクト依存関係が変更されるたびに環境再作成を推奨 |
4 | パッケージ化 | 現在のプロジェクトのディストリビューションを作成 |
5 | コマンド実行 | 「指定されたコマンド」を「指定された順序」で実行 |
6 | レポート | 各tox環境の結果レポートを出力 |
→tox.wiki →user_guide.html →#system-overview
toxの「機能」
Pythonパッケージのテスト機能
・多くの「インタープリタと依存関係の構成」に対してパッケージをテスト
・カスタマイズ可能な「virtualenvテスト環境」の自動(再)作成
・プロジェクトを各仮想環境にインストール
・テストツール非依存
自動プロビジョニング機能
インストールされているtoxバージョンが「min_version」または「require」のいずれかを満たしていない場合、
toxはこれらの制約を満たす仮想環境を「Provision_tox_env名」で自動的に作成し、
すべての呼び出しをこのメタ環境に委任します。
→tox.wiki →user_guide.html →#auto-provisioning
パラレルモード機能
・tox環境を並列プロセス (マルチスレッド ベース) で実行
・並列化度合いの指定が可能
・進行状況スピナーを表示
→tox.wiki →user_guide.html →#parallel-mode
toxの「オフィシャルサイト情報」
オフィシャルサイト
GitHubページ
主要開発元
toxは「tox開発コミュニティ」が中心となり開発が進められています。
→github.com →tox-dev →tox →graphs →contributors
ライセンス情報
toxのライセンスは「MIT License」です。
詳細について、こちらを参照ください。
→github.com →tox-dev →tox →LICENSE
動作環境
・Pythonインタプリタ(バージョン 3.7 以降)
インストール
【お知らせ】ITセミナー「マジセミ」のご紹介
「 マジセミ 」では、日々、多くのIT関連セミナーを開催しています。
参加者のみなさまのために「本当に役立つ情報の提供」を目標としています。
また、「 マジセミ 」を通じて、デジタル関連プロダクト(サービス)との「新たな出会いの場」「新たな体験の場」を創造することで、「IT業界の発展」「製造業の発展」「エンジニアの活躍促進」の実現を目指しています。
多くのセミナーの中から「ご自身のスキルやビジネスを強化できるセミナー」を見つけて、ぜひ一度、ご参加ください。
この記事のタグ一覧
フリーワード検索
カテゴリー一覧
アクセスランキング
- 🏆ランク1位🏆
【OSS情報アーカイブ】Infinispan - 🏆ランク2位🏆
【AIツール実験室】楽曲作成ツール「 Suno AI 」〜AI生成ミュージックフェス〜 - 🏆ランク3位🏆
【無料で使える】「 プロジェクト管理 」ツールまとめ - 🏆ランク4位🏆
【ツール紹介】無料オープンソース「 CAD ツール 」まとめ3選 - 🏆ランク5位🏆
【OSS情報アーカイブ】ASP.NET - 🏆ランク6位🏆
【OSS情報アーカイブ】Pulumi - 🏆ランク7位🏆
【OSS情報アーカイブ】dnsdist - 🏆ランク8位🏆
【OSS情報アーカイブ】Firefox - 🏆ランク9位🏆
【OSS情報アーカイブ】XAMPP - 🏆ランク10位🏆
【OSS情報アーカイブ】Prometheus