Pythonユニットテストコードを次のように編成しています。
Maindir
|
|--Dir1
| |
| |-- test_A.py
| |-- test_B.py
| |-- test_C.py
|
|--Dir2
| ...
私はあなたが絵を手に入れると思います。各ディレクトリには、giveディレクトリのテストから一連のテストをまとめたDirx
という名前のファイルがあります(特定のテストを選択したり、他のテストを省略したりできます)。suite.py
これらのファイルは、たとえば次のようになります(すべてのテストを選択する場合は、テストのサブセットのみを選択することもあります)[テスト<->単体テストも検討してください]:
import test_A
import test_B
import test_C
suite1 = test.TestSuite()
suite1.addTests(test.TestLoader().loadTestsFromTestCase(test_A.MyTest))
suite1.addTests(test.TestLoader().loadTestsFromTestCase(test_B.MyTest))
suite1.addTests(test.TestLoader().loadTestsFromTestCase(test_C.MyTest))
execall.py
ディレクトリ内のメインランナー、はMaindir
次のようになります。
from Dir1.suite import suite1
from Dir2.suite import suite2
suite_all = test.TestSuite([
suite1,
suite2])
if __name__ == '__main__':
test.main(defaultTest='suite_all')
今、私は次のことができます:
- すべてのテストを実行します:'execall.py'(文書化されているように)
- 特定のスイートを実行する:(
execall.py suite1
文書化されているように)
しかし、どうすれば特定の単一のテストのみを実行できますか?また、特定のファイルのすべてのテストを実行するにはどうすればよいですか?私は同じエラーで、成功せずに次のことを試みました:'TestSuite' object has no attribute 'xxx'
execall.py suite1.test_A
execall.py suite1.test_A.test1
execall.py test_A
execall.py test_A.test1
execall.py -h
単一のテストまたはテストケースでのテストを実行する方法の非常に具体的な例を示していますが、私の場合、これは機能しないようです。