私は現在、これらに似たプロジェクトとテストを行っています。
class mylib:
@classmethod
def get_a(cls):
return 'a'
@classmethod
def convert_a_to_b(cls, a):
return 'b'
@classmethod
def works_with(cls, a, b):
return True
class TestMyStuff(object):
def test_first(self):
self.a = mylib.get_a()
def test_conversion(self):
self.b = mylib.convert_a_to_b(self.a)
def test_a_works_with_b(self):
assert mylib.works_with(self.a, self.b)
py.test 0.9.2では、これらのテスト(または同様のテスト)に合格します。それ以降のバージョンのpy.testでは、test_conversionとtest_a_works_with_bは「TestMyStuffには属性aがありません」で失敗します。
これは、後のpy.testのビルドで、テストされるメソッドごとにTestMyStuffの個別のインスタンスが作成されるためだと思います。
シーケンスの各ステップで結果が得られるように、これらのテストを作成する適切な方法は何ですか。ただし、前の(成功した)テストの状態を使用して、後続のテストを実行できますか(必須)。