日々精進

新しく学んだことを書き留めていきます

pytestでオブジェクトを複数テスト間で使い回す方法

例えば、Tensor Flowのコードを含むクラスの場合、Tensor FlowがGlobalな状態を持つので 同じクラスのオブジェクトを複数回作り、そのたびにcheckpointを読み込むとエラーになる。

なので、その場合はconftest.pyに以下を書く。

@pytest.fixture
def foo_service():
    return FooService()

テストメソッドで以下のようにするとFooServiceのオブジェクトをInjectionしてくれるので、オブジェクト生成が一回になる。

@pytest.fixture(scope='class', autouse=True)
def test_extract(self, foo_service):

参考:

qiita.com