Python unittest discover()メソッドと実行順序の補完
3761 ワード
一、discoverの更なるテスト用例
異なる機能に基づいて異なるテストファイル、さらには異なるテストディレクトリを作成することができ、テストファイルでは異なる小機能を異なるテストクラスに分けることができ、クラスの下でテスト用例を作成し、全体の構造をより明確にすることができる.
しかしaddTest()によるテスト用例の追加・削除は非常に面倒になる
TestLoaderクラスで提供されるdiscover()メソッドは、テスト用例を自動的に識別できます.
discover(start_dir,pattern='test*.py',top_level_dir= None)
指定したディレクトリのすべてのテストモジュールが見つかり、サブディレクトリのテストモジュールが再帰的に検出され、ファイル名に一致した場合にのみロードされます.
start_dir:テストするモジュール名またはテスト例ディレクトリ
pattern='test*.py':使用例ファイル名の一致原則を表します.ここでは「test」で始まるものと一致する.pyタイプのファイル、*は任意の複数の文字を表します
top_level_dir=Noneテストモジュールの最上位ディレクトリ、最上位ディレクトリがない場合はデフォルトNone
例1:
異なる機能に基づいて異なるテストファイル、さらには異なるテストディレクトリを作成することができ、テストファイルでは異なる小機能を異なるテストクラスに分けることができ、クラスの下でテスト用例を作成し、全体の構造をより明確にすることができる.
しかしaddTest()によるテスト用例の追加・削除は非常に面倒になる
TestLoaderクラスで提供されるdiscover()メソッドは、テスト用例を自動的に識別できます.
discover(start_dir,pattern='test*.py',top_level_dir= None)
指定したディレクトリのすべてのテストモジュールが見つかり、サブディレクトリのテストモジュールが再帰的に検出され、ファイル名に一致した場合にのみロードされます.
start_dir:テストするモジュール名またはテスト例ディレクトリ
pattern='test*.py':使用例ファイル名の一致原則を表します.ここでは「test」で始まるものと一致する.pyタイプのファイル、*は任意の複数の文字を表します
top_level_dir=Noneテストモジュールの最上位ディレクトリ、最上位ディレクトリがない場合はデフォルトNone
例1:
import unittest
test_dir = './'
#
discover = unittest.defaultTestLoader.discover(test_dir,pattern='test*.py')
if __name__ == '__main__':
runner = unittest.TextTestRunner()
runner.run(discover)
discover() test_dir , , ,
run() discover,
2:
suite = unittest.TestSuite()
all_cases = unittest.defaultTestLoader.discover(PY_PATH,'Test*.py')
#discover() (Test*.py),
[suite.addTests(case) for case in all_cases]
report_html = BeautifulReport.BeautifulReport(suite)
、
unittest ASCII , :0~9,A~Z,a~z
, main() , TestSuite addTest()