我有需要按特定顺序运行的Python 2.7硒单元测试,如果一个测试在一个类中失败,则在该类中运行其余测试没有意义。我知道这很糟糕,测试应该独立运行。
在下面的代码中,我试图使用test_a设置bar = False,以便跳过test_f。这对我不起作用,我正试图找出原因。
from unittest import TestCase, main as unittest_main, skipIf
class TestSimpleFoo(TestCase):
foo = 'bar'
bar = True
def setUp(self):
pass
def test_a(self):
self.assertEqual(self.__class__.foo, 'bar')
self.__class__.foo = 'can'
# can i skip test_f ???
self.__class__.bar = False
@skipIf(bar == False, "skipping")
def test_f(self):
self.assertEqual(self.__class__.foo, 'can')
if __name__ == '__main__':
unittest_main()
答案 0 :(得分:0)
您的意思是,在test_a
之前运行test_f
时,这不起作用吗?
这是正常行为,因为条件是在构造装饰器时测试的,即在执行test_a
之前(注册单元测试类时)。
如果以前的测试已损坏,您似乎想停用测试,但这不是正确的方法。