Python 跳过单元测试
Python Skipping Unittests
我有 Python 2.7 selenium 单元测试,需要按特定顺序 运行,如果一个测试在 class 内失败,[=21= 就没有意义了] 在 class 中进行剩余的测试。我知道这很糟糕,测试应该 运行 独立进行。
在下面的代码中,我尝试使用 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()
你是说,当 test_a
在 test_f
之前是 运行 时,这不起作用?
这是正常行为,因为条件是在构造装饰器时测试的,这是在执行 test_a
之前(当注册单元测试 类 时)。
如果以前的测试被破坏,感觉就像您想停用测试,但这不是这样做的正确方法。
我有 Python 2.7 selenium 单元测试,需要按特定顺序 运行,如果一个测试在 class 内失败,[=21= 就没有意义了] 在 class 中进行剩余的测试。我知道这很糟糕,测试应该 运行 独立进行。
在下面的代码中,我尝试使用 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()
你是说,当 test_a
在 test_f
之前是 运行 时,这不起作用?
这是正常行为,因为条件是在构造装饰器时测试的,这是在执行 test_a
之前(当注册单元测试 类 时)。
如果以前的测试被破坏,感觉就像您想停用测试,但这不是这样做的正确方法。