マジセミドライブ

ウェビナー関連のニュースやITサービス&ツールの最新情報を随時配信します。

OSS情報

2023.05.31

【OSS情報】Python用開発タスク自動化ツール「 tox 」

【OSS情報】Python用開発タスク自動化ツール「 tox 」

【OSS情報】Python用開発タスク自動化ツール「 tox 」

toxのイメージ

toxの「概要」

「tox」(トックス)とは「Python用開発タスク自動化ツール」です。

「toxが作成したPython仮想環境」でテストやデプロイを実行できるため、
Pythonパッケージを「異なるPythonバージョン」や「異なる環境」でテストできます。

ユースケース

・テスト自動化 :「ビルドテスト」「動作テスト」「デプロイテスト」
・パッケージのインストール
・仮想環境管理
・Pythonプロジェクトの依存関係を管理
・継続的インテグレーションのサポート
・ドキュメント生成 など

開発目標

Pythonソフトウェアの「ビルド」「テスト」「デプロイ」のプロセスを簡素化するために、
「テスト自動化および標準化」を目指して開発されています。

toxの「特徴」

テスト実行

・さまざまな環境に対応 :「Python実装」「バージョン」「インストール依存関係」
・パッケージが正しくビルドおよびインストールされているかを確認
・テストツールを使用して各環境でテストを実行
・継続的統合サーバのフロントエンドとして機能

→tox.wiki →user_guide.html →main-features

効率化

・ボイラープレートを大幅に削減
・「CI」および「シェルベース」のテストを統合
・Pythonパッケージ用リポジトリ管理システム「devpi」との相互運用性

機能拡張

・Python用プラグインシステム「Pluggy」を使用
・フックを使用してデフォルトの動作をカスタマイズできる

→tox.wiki →plugins

構成ファイル

■優先順位付けされた3つの構成ファイルをサポート
①「tox.ini」
②「pyproject.toml」
③「setup.cfg」

→tox.wiki →config

環境オーケストレーター

・各種ツールの「セットアップおよび実行する方法」を定義する
・それぞれの環境をセットアップして起動できる

■利用可能な開発ツールの例
・テストランナー「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の「オフィシャルサイト情報」

オフィシャルサイト

→tox.wiki

GitHubページ

→github.com →tox-dev →tox

主要開発元

toxは「tox開発コミュニティ」が中心となり開発が進められています。

→github.com →tox-dev →tox →graphs →contributors

ライセンス情報

toxのライセンスは「MIT License」です。

詳細について、こちらを参照ください。

→github.com →tox-dev →tox →LICENSE

動作環境

・Pythonインタプリタ(バージョン 3.7 以降)

インストール

→tox.wiki →installation

【お知らせ】ITセミナー「マジセミ」のご紹介

「 マジセミ 」では、日々、多くのIT関連セミナーを開催しています。

参加者のみなさまのために「本当に役立つ情報の提供」を目標としています。

また、「 マジセミ 」を通じて、デジタル関連プロダクト(サービス)との「新たな出会いの場」「新たな体験の場」を創造することで、「IT業界の発展」「製造業の発展」「エンジニアの活躍促進」の実現を目指しています。

多くのセミナーの中から「ご自身のスキルやビジネスを強化できるセミナー」を見つけて、ぜひ一度、ご参加ください。

マジセミのイメージロゴ

参考サイト
→github.com →tox-dev →tox
→tox.wiki

おすすめの記事

【デジタル寺田の3分用語解説】 2025年「 リスキリング 」の課題📚

デジタル寺田の3分用語解説

2024.12.11

【デジタル寺田の3分用語解説】 2025年「 リスキリング 」の課題📚

2025年の リスキリング 課題は、「企業の人材投資不足」「長時間労働」「自己学習時間の短さ」「職能資格制度」が妨げとなり、「スキル不足を招く悪循環」が指摘されています。企業が未来の競争力を得る鍵であり、AIやテクノロジー進化への対応が急務です。社会全体での意識改革も必要となっています。

【デジタル寺田の3分用語解説】 サイバー犯罪者向けの生成AI「 WormGPT 」とは?🐛

デジタル寺田の3分用語解説

2024.12.11

【デジタル寺田の3分用語解説】 サイバー犯罪者向けの生成AI「 WormGPT 」とは?🐛

「 WormGPT 」は、サイバー犯罪者向けに開発された生成AIツールで、セキュリティや倫理的な制限がなく、「フィッシングメール作成」や「マルウェア開発」を簡易化します。「As-a-Service」モデルで提供され、アクセスが容易で、犯罪の精度と規模を向上させる脅威となっています。

【デジタル寺田の3分用語解説】「 6G 」とは?「5G」とどう違うのか📶

デジタル寺田の3分用語解説

2024.12.11

【デジタル寺田の3分用語解説】「 6G 」とは?「5G」とどう違うのか📶

「 6G 」は、2030年商用化を目指す次世代通信技術で、「5G」の数十倍~100倍の速度を実現。エネルギー効率やセキュリティが向上し、「メタバース」「医療」「教育」など多分野で活用が期待されており、私たちの生活や社会の在り方を大きく変革する可能性を秘めている。