2017-03-13 21 views
0

クラスusefulClassを提供するpackageAと、test_stuff.pyモジュールにpytestフィクスチャを、conftest.pyモジュールにテスト構成を持つとします。pytest fixturesとconfest.pyモジュールをパッケージ間で共有できますか?

また、Iはpip介してインストール、packageAをインポート両方ともpackageBpackageCがあると、それらは同様にusefulClassを使用すること。同じ方法でusefulClassを使用しているため、packageBpackageCには多くの同じpytestフィクスチャと構成が必要です。実際、それらのテストは主に反復される入力セットでのみ異なります。

器具及び構成が同一であり、usefulClassの使用から生じるので、packageAでこれらの器具および構成を定義し、次にpackageBpackageCのテスト環境にインポートすることができますか?

特に、packageAconftest.pyモジュールに表示されるpytest_generate_testsの定義を何十ものモジュールに再利用したいと思います。この方法では、私は数百ではなく1つのconfest.pyモジュールを維持する必要があります。

答えて

1

conftest.pyファイルはモジュールの一部ではなく、他のモジュールからインポートすることはできません。たぶん

from packageA.testutils import * 

すべての他のパッケージが依存している個々のパッケージを作成することも、ワラント:あなたは、その後packageA年代を含め、すべてのconftest.pyファイルにインポートすることができますモジュールpackageA.testutilsを作成することができますしかし

+0

私はこれが唯一の選択肢かもしれないと思っていました。したがって、 'pytest_generate_tests'のような特別な名前の設定関数を' packageA.testutils'から 'packageB'の' conftest.py'にインポートすると、pytestはそれを正しく発見して適用しますか? –

+0

はい、そうすべきです。 –

+0

はい、私は自分のパッケージの1つで試しました。依存パッケージの 'conftest.py'にインポートされた' pytest_generate_tests'は正しく発見され、実行されます。だから、他の特別な名前の関数についても同じことが当てはまります。ヴィーレンダンク〜MM –

関連する問題