我目前有一个类似于这些的项目和测试。
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 实例。
编写这些测试的正确方法是什么,以便可以为序列中的每个步骤给出结果,但可以(必须)使用先前(成功)测试的状态来执行后续测试?