上一篇博客,我们介绍了测试脚手架,也就是当我们在实际的测试中, 我们可能有些参数或者有些用例case只需要执行一次,那么我们也只能在用例执行一次,不然重复执行,会导致数据覆盖等情况。我们可以采取测试脚手架来完成对应的操作。
今天这篇博客我们来介绍一下,用例的跳过。
在运行测试中,有时需要直接跳过某些测试用例,或者当某些测试用例符合某个条件时跳过测试,又或者直接将测试用例设置失败状态。unittest提供了一些实现这些需求的装饰器。
1、含义:表示无条件的跳过装饰的测试,需要说明跳过测试的原因
2、运用:
import unittest
class TestCaseDemo(unittest.TestCase):
@unittest.skip('直接跳过')
def testassertdemo(self):
self.assertNotEqual(1, 1)
def testassertdemo_1(self):
self.assertListEqual([1, 2], [1, 2])
def testassertdemo_2(self):
self.assertNotRegex("1", "122") # 正则是否匹配
if __name__ == '__main__':
unittest.main()
3、结果:
第一条testassertdemo的case,里面的断言是不符合预期的,预期用例会报错,但是由于skip直接跳过了,所以运行结果都是通过了。
1、含义:如果条件为真,那么跳过的测试
2、运用:
import unittest
class TestCaseDemo(unittest.TestCase):
@unittest.skipIf(3>2,'前面条件为真时,跳过此用例')
def testassertdemo(self):
self.assertNotEqual(1, 1)
def testassertdemo_1(self):
self.assertListEqual([1, 2], [1, 2])
def testassertdemo_2(self):
self.assertNotRegex("1", "122") # 正则是否匹配
if __name__ == '__main__':
unittest.main()
1、含义:当条件为真时,需要执行的测试
2、运用:
import unittest
class TestCaseDemo(unittest.TestCase):
@unittest.skipUnless(3>2,'前面条件为真时,需要执行此用例')
def testassertdemo(self):
self.assertNotEqual(1, 1)
def testassertdemo_1(self):
self.assertListEqual([1, 2], [1, 2])
def testassertdemo_2(self):
self.assertNotRegex("1", "122") # 正则是否匹配
if __name__ == '__main__':
unittest.main()
1、含义:不管执行结果是否失败,都将测试标记为失败
2、运用:
import unittest
class TestCaseDemo(unittest.TestCase):
@unittest.expectedFailure
def testassertdemo(self):
self.assertNotEqual(1, 2)
def testassertdemo_1(self):
self.assertListEqual([1, 2], [1, 2])
def testassertdemo_2(self):
self.assertNotRegex("1", "122") # 正则是否匹配
if __name__ == '__main__':
unittest.main()