py.testは初めてです。これまでのところ、私は自分が見ているものが好きで、それをCIプロセスに統合したいと思っています。
現在、テストには別の種類のパラメーター化スキームを使用しています。これについて簡単に説明します。
- テストごとにパラメータ化する代わりに、クラスごとにパラメータ化します
- たとえば
params
、タプルの集合であり、それぞれが異なるパラメータのセットを表します。 - そのようなtuplaごとに
TestCaseWithParameters
、unittest.TestCase
クラスであるいくつかの異なるインスタンスを作成します。このようなもの:
for test_parameters in params: parameterized_test_suite.addTest(ParametrizedTestCase.parametrize(TestCaseWithParameters,param=test_parameters))
- これらの各クラスには、これらの
self.params
異なるパラメータを使用してすべてのテスト関数が注入され、実行されます。 - これは、数百のタプルが
params
あり、TestSomethingWithParameters
数十のテストがある場合、合計で多くのテストがあることを意味します。
私の質問:これをpy.testに変換するにはどうすればよいですか?
フックについてのこの記事を読みましpytest_generate_tests
たが、テスト関数ごとに依存関係が注入されているようで、テストケースごとに必要です...
最も簡単な方法は、py.testにparameterized_tes_suite
、私がすでに作成した特定のものを実行するように指示することですが、そうする方法が見つかりませんでした...
別の方法は、TestCaseクラスレベルで同様の依存性注入を行うことですが、私もそれを行う方法を見つけていません。