UnitTestフレームワーク-テストディスカバリー
TestLoaderクラスにはdiscover()関数があります。Pythonテストフレームワークは、これを使用して簡単なテスト検出を行います。互換性を保つには、テストを含むモジュールとパッケージがトップレベルのディレクトリからインポート可能である必要があります。
以下は、テスト検出の基本的なコマンドラインの使用法です。
Python –m unittest discover
インタプリタは、テストを含むすべてのモジュールを現在のディレクトリと内部ディレクトリから再帰的にロードしようとします。その他のコマンドラインオプションは次のとおりです。
シニア番号 | オプションと説明 |
---|---|
1 | -v, --verbose 冗長出力 |
2 | -s, --start-directory ディレクトリ検出を開始するディレクトリ(デフォルト) |
3 | -p, --pattern patternテストファイルに一致するパターン(test * .pyのデフォルト) |
4 | -t, --top-level-directory directoryプロジェクトの最上位ディレクトリ(デフォルトは開始ディレクトリ) |
たとえば、「tests」ディレクトリで名前が「assert」で始まるモジュールのテストを検出するには、次のコマンドラインを使用します。
C:\python27>python –m unittest –v –s "c:\test" –p "assert*.py"
テスト検出は、テストをインポートしてロードします。テストディスカバリーは、指定した開始ディレクトリからすべてのテストファイルを検出すると、パスをパッケージ名に変換してインポートします。
開始ディレクトリをディレクトリへのパスではなくパッケージ名として指定した場合、discoverは、インポート元の場所が目的の場所であると想定するため、警告は表示されません。