ホームページ >バックエンド開発 >Python チュートリアル >Python タスク自動化ツール tox チュートリアル

Python タスク自動化ツール tox チュートリアル

王林
王林転載
2023-04-19 17:49:061376ブラウズ

Python タスク自動化ツール tox チュートリアル

    # コマンド ライン駆動の CI フロントエンドおよび開発タスク自動化ツール

  • コマンド ライン駆動の CI フロントエンドおよび開発タスク自動化ツール

tox のプロジェクト アドレスは: https://github.com/tox-dev/tox


その中心的な機能は、分離された Python 環境の作成をサポートすることです。さまざまなバージョンの Python インタープリターとさまざまな依存ライブラリをインストールできるため、開発者は自動テスト、パッケージ化、継続的統合などを容易に行うことができます。


簡単に言えば、tox はテスト仮想環境を管理するためのコマンド ライン ツールです。これは長年にわたって存在しており、開発者によって広く使用されており、たとえば、有名なクラウド コンピューティング プラットフォームである OpenStack も、最も基本的なテスト ツールの 1 つとして使用しています。


1. tox には何ができるのでしょうか?


細分化された用途には次のものが含まれます:


    開発環境の作成
  • 静的コード分析およびテスト ツールの実行

  • # パッケージの自動構築

  • tox で構築されたパッケージに対してテストを実行します

  • パッケージがさまざまな Python バージョン/インタープリターに正常にインストールできるかどうかを確認します

  • 継続的インテグレーション (CI) とコマンド ライン ベースのテストを統合する

  • プロジェクト ドキュメントを作成して展開する

  • PyPI またはその他のプラットフォームにパッケージを公開する

  • tox 公式ドキュメントには、40 を超える使用シナリオの例がリストされています。詳細なリストは、https://tox.readthedocs.io/en/latest/examples で参照できます。html


Python タスク自動化ツール tox チュートリアル#2. tox を設定するにはどうすればよいですか?


その使用法について: インストールするには pip install tox を使用し、すべてのテスト環境を実行するには tox を使用し、指定した環境を実行するには tox -e envname を使用します。コマンド ライン パラメータも多数あり、tox -h で表示できます。


tox の動作はその設定ファイルによって制御されます。現在、3 つの設定ファイルをサポートしています:


pyproject.toml
  1. tox。 ini

  2. setup.cfg

  3. tox プロジェクト自身の tox.ini 設定コンテンツを例として挙げると、次のように設定されていることがわかります (https :// github.com/tox-dev/tox/blob/master/tox.ini):


Python タスク自動化ツール tox チュートリアル

Python タスク自動化ツール tox チュートリアル#毎 [ xxx ] とその下のコンテンツはセクションを形成し、各セクションの間には空行が入ります。


[tox]以下はグローバル設定項目で、envlist フィールドは tox が動作する環境を定義します。 [xxx] xxx 仮想環境の設定項目は以下のとおりです [xxx:yyy] は xxx の設定を継承しており、独自の設定項目が優先されます。


各仮想環境では、多くの設定項目が利用可能です。たとえば、一般的に使用されるものは次のとおりです: description (説明情報)、basepython (Python インタプリタのバージョン)、deps (環境の依存関係)、コマンド (コマンド) ステートメント) など。


tox は変数置換もサポートしており、いくつかの組み込み基本変数 (グローバルまたは仮想環境用) を提供します: {toxinidir}、{homedir}、{envname}、{envdir} など。 。


基本的な変数置換に加えて、次の高度な使用法もサポートしています:


オペレーティング システムの環境変数を取得します: {env:KEY}, os.environ['KEY'] でも効果は同じです。次のように変更できます: {env:KEY:DEFAULTVALUE}、環境変数を取得できない場合にデフォルト値が使用されます; {env:KEY:{env:DEFAULT_OF_KEY}}、if-else
    の値の効果を実現します。

  • コマンド ライン パラメータを渡します: {posargs:DEFAULTS} コマンド ライン パラメータがない場合は、DEFAULTS 値が使用されます。使用法: tox arg1 arg2 で 2 つのパラメータを渡すか、tox -- --opt1 arg1 で "--opt1 arg1" を全体として渡します。


章間で渡される値: {[セクション名]値名}、異なる章の内容を渡して使用できます。

  • インタラクティブ コンソール インジェクション: {tty:ON_VALUE:OFF_VALUE}。インタラクティブ シェル コンソールが開かれるときは最初の値が使用され、それ以外の場合は 2 番目の値が使用されます。 pytestで「--pdb」を使用した場合の例です。

  • 中括弧「{}」は変数の置換に使用するほか、「OR関係」の判定の値としても使用できます。次の例を直接見てください:
[tox]
envlist = {py27,py36}-django{15,16}

{py27,py36}-django{15,16} には、2 セットの中括弧のそれぞれに 2 つの値があります。実際には、これらを 4 つに組み合わせることができます。環境: py27-django15、py27-django16、py36-django15、py36-django16。


toxの設定項目、利用条件、意味、高度な使い方などについては、公式ドキュメント https://tox.readthedocs.io/en/latest/config で確認できます。 html


3. tox のプラグイン


tox は、強力な構成可能性に加えて、強力な拡張性も備えており、プラグイン可能です (プラグ可能)。豊富なプラグインエコシステムが登場しました。

pip search tox を使用すると、「tox-」で始まる多数のライブラリが表示されます。これらはすべて tox のプラグイン パッケージです。その中には、setuptools、pipenv、conda、travis、pytest、docker などのよく知られた名前があります。

Python タスク自動化ツール tox チュートリアル

tox は、他のユーザーがプラグインをカスタマイズして開発できるようにするために、多くの API インターフェイスを公開しました。

Python タスク自動化ツール tox チュートリアル

#4. tox のワークフロー


tox がどのように機能するかを見てみましょう:


Python タスク自動化ツール tox チュートリアル#ワークフローの主なリンクは次のとおりです:


構成 (構成から): 構成ファイル (tox.ini など) をロードし、コマンド ライン パラメーター、システム環境変数の読み取りなど。
  • パッケージ化: オプション。setup.py ファイルを含むプロジェクトの場合、このステップでソース配布を生成できます。

  • 仮想ファイルの作成環境: デフォルトで virtualenv を使用して仮想環境を作成し、構成項目の「deps」に従って必要な依存関係をインストールし、構成されたコマンド (コマンド) を実行します。

  • レポート: 実行結果を要約します。概要

  • tox 自体はテスト ツールとして位置付けられており、Python テストを自動化、標準化しようとします。そして合理化されました。ただし、unittest や pytest などのテスト フレームワークとは異なり、コード レベルを超えて機能し、プロジェクト レベルのツールです。したがって、その価値をより効果的に発揮するには、これらのテスト フレームワークと組み合わせるか、複数の自動タスク (pep8 の実行、コード カバレッジのテスト、ドキュメントの生成など) を同時に処理する必要があります。

その主な機能の 1 つは仮想環境の作成/管理ですが、これはテストを容易にするためにのみ使用されるため、Virtualenvwrapper、conda、pipenv などの仮想環境を管理できる他のツールと比較してください。 、詩にはいくつかの点で欠点があります。

tox は、強力な構成可能性と豊富なプラグインのサポートも備えており、アプリケーションに大きな可能性と自由度を与えます。したがって、多くの忠実な開発者が今でもこのツールを使用しており、たとえば、私が翻訳した一連の記事の著者もそのメンテナの 1 人です。


最後に、tox は設定ファイルをドライバーとして使用することを付け加えておきますが、設定ファイルは依然として非常に面倒なので、誰かが次のような nox を開発しました。 tox. 設定には Python ファイルを使用します。このプロジェクトも非常に人気があり、pipx、urllib3、Salt など、その傘下に投資する多くのプロジェクトが集まっています。このプロジェクトに興味がある場合は、https://nox.thea.codes/en/stable をチェックしてください。

以上がPython タスク自動化ツール tox チュートリアルの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事は51cto.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。