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

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

Mary-Kate Olsen
リリース: 2024-11-26 06:40:11
オリジナル
410 人が閲覧しました

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート