我有Python2.7Selenium单元测试,它们需要按照特定的顺序运行,如果一个类中有一个测试失败,那么在该类中运行剩余的测试是没有意义的。我知道这很糟糕,测试应该独立运行
在下面的代码中,我尝试使用test\u a将bar=False设置为跳过test\u 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()
你的意思是,当
test_a
在test_f
之前运行时,这不起作用这是正常的行为,因为条件是在构造decorator时测试的,而decorator是在执行
test_a
(注册单元测试类时)之前测试的如果以前的测试被破坏了,您可能想停用测试,但这不是正确的方法
相关问题 更多 >
编程相关推荐