py.test は、テストの前にトップレベルのステートメントを評価するように見えるので、機能しtest_1.py
ます。
ただし、テストを作成している場合、トップレベル ステートメントを使用することは一般的にお勧めできません。テストをテスト ケース (関連するテスト コードを保持するクラス) に構造化し、アプリケーションの特定の機能をテストする必要があります。したがって、コード ( test_2.py
) をテスト ケースに変換すると、次のようになります。
def setup_module(module):
module.TestFoo.foo = 3
class TestFoo:
def test_foo(self):
assert self.foo == 3
このようにして、関連するすべてのテストを追加し続けることができ、モジュールごとTestFoo
に複数のテストを追加することもできます (ただし、通常はそれぞれを独自のファイルに含めるのが最善です)。TestCase
TestCase
あなたのteardown_module
質問に関しては、アプリケーションの状態を初期状態に復元する必要がある場合 (新しく作成されたアイテムを削除するなど)、またはハングしている接続をクリーンアップする必要がある場合 (ファイルやソケットを閉じるなど) にのみ、ティアダウンが必要です。この場合、setup_module
クリーンアップが必要なことは何もしていないので、ティアダウンは必要なく、py.test はそれがないことを訴えません。