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方法:

  1. from unittest import TestCase, main, skip
  2. class MyTestCase(TestCase):
  3. @classmethod
  4. def setUpClass(cls):
  5. print('setUpClass')
  6. @classmethod
  7. def tearDownClass(cls):
  8. print('tearDownClass')
  9. def test_print1(self):
  10. print('第一个测试用例')
  11. # unittest框架自带的断言,如果不相等,直接抛出异常,相等什么都不做
  12. self.assertEqual(200, 200, '测试失败')
  13. def test_print2(self):
  14. print('第二个测试用例')
  15. @skip('do not need test_print3')
  16. def test_print3(self):
  17. print('第三个测试用例')
  18. if __name__ == '__main__':
  19. main()
  20. ==========输出===========
  21. setUpClass
  22. 第一个测试用例
  23. 第二个测试用例
  24. tearDownClass
  25.  

setUpClass和tearDownClass的使用

  • setup方法和teardown方法在每次执行一个测试用例时都会重新执行一遍,所以要想在整个类中只执行一遍可以用setUpClass和tearDownClass方法;

  •  setUpClass  :需要添加 classmethod 装饰器,在一个类中只会在所有测试用例运行前调用一次;

  •  tearDownClass  :需要添加 classmethod 装饰器,在所有测试用例运行后调用一次;

 

http://blog.itpub.net/69908432/viewspace-2647362/

posted @ 2020-04-06 22:43  lulu晶  阅读(407)  评论(0)    收藏  举报