一、unittest框架简介
unittest设计时主要用于单元测试,但其他功能强大,也可以用于其他的自动化测试(GUI、接口)。
二、unittest框架的四个核心
1. testcase:测试用例
2. testsuite:测试套件
3. testfixture:用于配置或者删除环境,提供setUp()启动和tearDown()释放的方法,定义了特殊的运行方式
4. testrunner:提供run()方法,运行测试集,可以生成测试报告
三、unittest框架常用的类
1.TestCase 2.main 3.TestSuite 4.skip 5.TestResult 6.TestLoader
四、unittest框架的实现过程
1. 通过继承的方式(unittest.TestCase)获取父类方法,构建测试用例
2. 构建测试用例遵循标准:必须以test开头
3. 通过testfixture初始化运行时所需要的变量。setUp获取,tearDown回收
4. 定义测试类。unittest.main(),另外一种通过testsuite的方式指定运行某一些测试用例。unittest.TsetSuite()得到测试集对象。通过addTest()或者是addTests()
5. 运行测试集
五、setUp()和tearDown()
每次执行一次test_case方法,setUp()和tearDown()方法都会执行一次
import unittest class TestDemo(unittest.TestCase): def setUp(self): print("测试开始") def tearDown(self): print("测试结束") def test_case1(self): print('执行case1') def test_case2(self): print('执行case2') def test_case3(self): print('执行case3') if __name__ == '__main__': unittest.main()
六、setUpClass()和tearDownClass()
setUpClass()和tearDownClass()方法在整个过程中只执行一次(开头与结尾)
import unittest class TestDemo(unittest.TestCase): @classmethod def setUpClass(cls): cls.a="测试开始" print(cls.a) @classmethod def tearDownClass(cls): cls.b="测试结束" print(cls.b) def test_case1(self): print('执行case1') def test_case2(self): print('执行case2') def test_case3(self): print('执行case3') if __name__ == '__main__': unittest.main()
七、常用断言
1. assertEqual(a,b)
2. assertNotEqual(a,b)
3. assertTrue(a)
4. assertFalse(a)
5. assertIn(a,b)
6. assertNotIn(a,b)