pytest 8 系から setup/teardown の書き方が変わった
pytest は 8 系から nose のサポートを終了したため、nose を使うプロジェクトは影響を受ける可能性がある。 具体的に影響を受けるのはsetup/teardownのフィクスチャで、従来は次のように書けていたが、pytest 8 系ではエラーになる。
| class Test:
def setup(self):
self.resource = make_resource()
def teardown(self):
self.resource.close()
def test_foo(self): ...
def test_bar(self): ...
|
8 系ではこれを次のように書き換える。
| class Test:
def setup_method(self):
self.resource = make_resource()
def teardown_method(self):
self.resource.close()
def test_foo(self): ...
def test_bar(self): ...
|
@with_setupで準備・後片付けを指定している場合も、yieldの前に準備、後に後片付けを書く pytest のフィクスチャへ置き換える必要がある。追加の例はpytest の nose 移行ドキュメントにある。