マジセミドライブ

ウェビナー関連のニュースや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分用語解説】「 経済産業省:コンテンツ制作のための 生成AI 利活用ガイドブック 」とは?📘

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

2024.11.18

【デジタル寺田の3分用語解説】「 経済産業省:コンテンツ制作のための 生成AI 利活用ガイドブック 」とは?📘

経済産業省による「 生成AI 利活用ガイドブック 」は、企業やクリエイター向けに、安心して「生成AI」を利用するための、「指針」「実例」「注意点」を明示しています。「業務効率化」や「新しいアイデア創出」の支援を目的としています。

【デジタル寺田の3分用語解説】「 2029年問題 」とは?📅

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

2024.11.18

【デジタル寺田の3分用語解説】「 2029年問題 」とは?📅

「 2029年問題 」とは、高校でのデジタル教育改革により、新入社員と既存社員間でデジタルスキル格差が拡大する懸念を指します。企業は早急に対応が求められています。この格差は、企業競争力や業務効率にも、影響を及ぼす可能性があります。

【デジタル寺田の3分用語解説】「 VMWare 問題 」とは?🖥️

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

2024.11.18

【デジタル寺田の3分用語解説】「 VMWare 問題 」とは?🖥️

「 VMWare 」の仮想化技術は、「ITインフラの効率化」に大きく貢献する技術ですが、Broadcomによる買収後のライセンス変更が大きな問題として注目されています。柔軟で慎重な契約見直しが今後の鍵となります。