unittest做自动化测试时,有时需要根据某个测试用例的结果来判断是否要跳过指定的用例,比如:根据test1的结果来决定到底要不要跳过他test2;之前找了很多方法都是@unittest.skip(reason)、@unittest.skipIf、@unittest.skipUnless这三个装饰器,但是装饰器中的条件不好获取,所以又找到新的方法来解决这个问题,方法如下:
import unittest
class A(unittest.TestCase):
def test_01(self):
global b
b = 2
def test_02(self):
if globals()["b"] == 2:
self.skipTest("我是跳过用例的原因")
print("pass")
if __name__ =="__main__":
unittest.main()
当全局变量中 b = 2时,则使用self.skipTest方法跳过,该方法需要一个参数,跳过用例的原因;执行结果如图:
test_02没有执行,被跳过了