skip装饰器、setUpClass方法和tearDownClass方法
skip装饰器
-
我们可以使用unitest.skip装饰器跳过不需要的测试用例,
@unittest .skip(reason)表示无条件跳过测试用例,reason是用来说明原因的; -
@unittest .skipIf(conditition,reason):condititon为true时跳过测试用例; -
@unittest .skipunless(condition,reason):condition为False时跳过测试用例;
之前我们学习了setup方法和setUpClass方法,会在每个测试用例的前后都执行一遍,那如果我们只想要在所有测试用例的前后执行一遍,也就是在整个类中只执行一遍要怎么办呢,我们可以使用setUpClass方法和tearDownClass方法:
from unittest import TestCase, main, skipclass MyTestCase(TestCase):@classmethoddef setUpClass(cls):print('setUpClass')@classmethoddef tearDownClass(cls):print('tearDownClass')def test_print1(self):print('第一个测试用例')# unittest框架自带的断言,如果不相等,直接抛出异常,相等什么都不做self.assertEqual(200, 200, '测试失败')def test_print2(self):print('第二个测试用例')@skip('do not need test_print3')def test_print3(self):print('第三个测试用例')if __name__ == '__main__':main()==========输出===========setUpClass第一个测试用例第二个测试用例tearDownClass
setUpClass和tearDownClass的使用
-
setup方法和teardown方法在每次执行一个测试用例时都会重新执行一遍,所以要想在整个类中只执行一遍可以用setUpClass和tearDownClass方法;
-
setUpClass:需要添加 classmethod 装饰器,在一个类中只会在所有测试用例运行前调用一次; -
tearDownClass:需要添加 classmethod 装饰器,在所有测试用例运行后调用一次;
浙公网安备 33010602011771号