这是我的代码,我不确定我是否缺少或遗漏了一些代码,但它并没有跳过test2
import unittest
class AppTesting (unittest.TestCase):
skipYes = ""
def test_1(self):
print("Test 1: " + str(AppTesting.skipYes))
AppTesting.skipYes = "Yes"
print("Test 1: " + str(AppTesting.skipYes))
@unittest.skipIf(str(skipYes) == "Yes", "Skip condition")
def test_2(self):
print("Test 2 skipYes is: " + str(AppTesting.skipYes))
print("This is Test 2")
def test_3(self):
print("This is Test 3")
if __name__ == "__main__":
unittest.main()
当模块与测试类定义一起加载到测试运行时,将对decorator进行评估,因此此时的
skipYes
变量将始终是空字符串""
,如类中定义的那样在测试方法中更改此变量不会有任何区别,因为测试运行程序已经收集了要运行的测试和要跳过的测试
作为一种解决方案,在Python 3.4中,您可以使用子测试:
文档:https://docs.python.org/3/library/unittest.html#distinguishing-test-iterations-using-subtests
相关问题 更多 >
编程相关推荐