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

Python の標準の「test」ディレクトリから単体テストを効果的に実行するにはどうすればよいですか?

Susan Sarandon
リリース: 2024-12-04 03:08:10
オリジナル
422 人が閲覧しました

How Can I Effectively Run Unit Tests from a Standard

標準テスト ディレクトリ構造を使用した単体テストの実行

多くの Python プロジェクトは、単体テストが別の " に保存される典型的なディレクトリ構造を採用しています。テスト」ディレクトリ。ここで疑問が生じます: これらのテストを効果的に実行するにはどうすればよいですか?

問題と問題

「test」ディレクトリから直接 test_antigravity.py を実行すると失敗します。反重力モジュールがシステム パス上にありません。 PYTHONPATH の変更や同様のパス関連のトリックは、最適な解決策ではない可能性があります。テスト ファイルをコピーして別のディレクトリに貼り付けるのは効率が悪いようです。

解決策:unittest コマンド ライン インターフェイスを使用する

最も推奨されるアプローチは、unittest コマンドを使用することです。ラインインターフェース。現在のディレクトリが sys.path に自動的に追加され、テスト対象のモジュールをシームレスにインポートできるようになります。

次のような構造の場合:

new_project
  └── test_antigravity.py
ログイン後にコピー

次を実行するだけです。

$ python -m unittest test_antigravity
ログイン後にコピー

構造体の場合例:

new_project
  ├── antigravity
  │   └── antigravity.py
  └── test
    ├── test_antigravity.py
ログイン後にコピー

単一のテスト モジュールを実行できます:

$ python -m unittest test.test_antigravity
ログイン後にコピー

単一のテストを実行します:

$ python -m unittest test.test_antigravity.GravityTestCase
ログイン後にコピー

単一のテスト メソッドを実行します:

$ python -m unittest test.test_antigravity.GravityTestCase.test_method
ログイン後にコピー

すべてを実行testing:

$ python -m unittest discover
$ # Also works without discover for Python 3
$ # as suggested by Burrito in the comments
$ python -m unittest
ログイン後にコピー

このアプローチは、ユーザーが「単体テストを実行するには、X を実行してください。」という指示に従うだけで単体テストを実行するのに便利です。

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

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