ホームページ >バックエンド開発 >Python チュートリアル >標準のディレクトリ構造を使用して Python で単体テストを効果的に実行するにはどうすればよいですか?

標準のディレクトリ構造を使用して Python で単体テストを効果的に実行するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-26 06:40:11423ブラウズ

How to Effectively Run Unit Tests in Python with a Standard Directory Structure?

典型的なディレクトリ構造を使用した単体テストの実行

Python の共通モジュール構造では、以下に示すように、単体テストを専用のテスト ディレクトリに分割することがよくあります。 :

new_project/
    antigravity/
        antigravity.py
    test/
        test_antigravity.py
    setup.py
    etc.

これらのテストを実行するには、単に実行するだけでは不十分です。 test ディレクトリから python test_antigravity.py を取得します。反重力がインポート パス上にないため、このアプローチは失敗します。

代わりに、テストを実行する最も簡単な方法は、unittest コマンド ライン インターフェイスを使用することです。このユーティリティはディレクトリを sys.path に自動的に追加し、モジュールをインポートできるようにします。

次のようなディレクトリ構造の場合:

new_project
├── antigravity.py
└── test_antigravity.py

次のようにテストを実行します。

$ cd new_project
$ python -m unittest test_antigravity

あなたのような構造の場合、antigravity ディレクトリと test ディレクトリの両方にパッケージがある場合、test で通常どおり、antigravity 内にモジュールをインポートできます。モジュール:

# import the package
import antigravity

# import the antigravity module
from antigravity import antigravity

# or an object inside the antigravity module
from antigravity.antigravity import my_object

特定のテストの実行:

特定のテスト モジュール (例: test_antigravity.py) を実行するには:

$ cd new_project
$ python -m unittest test.test_antigravity

単一のテスト ケースを実行することもできます。メソッド:

$ python -m unittest test.test_antigravity.GravityTestCase
$ python -m unittest test.test_antigravity.GravityTestCase.test_method

すべてのテストの実行:

テスト検出を使用して、すべてのテストを自動的に検出して実行します:

$ cd new_project
$ python -m unittest discover

これは実行されますテスト パッケージ内のすべての test*.py モジュール。詳細については、検出に関する公式ドキュメントを参照してください。

以上が標準のディレクトリ構造を使用して Python で単体テストを効果的に実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。