|
阅读:7359回复:0
python 基础 学习系列7 — unittest 单元测试
概述 (unittest使用方法讲解:http://www.jb51.net/article/63955.htm)
1.测试脚手架(test fixture) 测试准备前要做的工作和测试执行完后要做的工作.包括setUp()和tearDown(). 2.测试案例(test case) 最小的测试单元. 3.测试套件(test suite) 测试案例的集合. 4.测试运行器(test runner) 测试执行的组件. ====================================================== unittest 常用方法: http://blog.csdn.net/guangyinglanshan/article/details/78264981 https://www.jianshu.com/p/d52c20cd7021 代码注释说明各种方法(setup , tearDown) ==================================================================== python_unittest详解(原理等) ==================================================================== 单元测试的几种方式 1.使用 unittest.main() 执行测试 # 导入unittest 模块 import unittest import demo1 class TestCase150(unittest.TestCase): @classmethod def setUpClass(cls): print('set up class') @classmethod def tearDownClass(cls): print('tear down class') # 每一个测试方法执行前,都会执行 def setUp(self): print('test fun 执行') self.calc = demo1.calc() def tearDown(self): print('test fun 结束') def testadd(self): self.assertEqual(self.calc.add(1,2),3,'add is fail') def testsub(self): self.assertEqual(self.calc.sub(2,1),1,'sub is fail') def testpow(self): pass if __name__=="__main__": unittest.main() 2. 使用suite 套件,且使用TextTestRunner 进行运行 import unittest # TextTestRunner class UCTestCase(unittest.TestCase): def setUp(self): pass def tearDown(self): pass def testAdd(self): print('add') def testSub(self): print('sub') if __name__=="__main__": # 测试集 suite = unittest.TestSuite() suite.addTest(UCTestCase('testAdd')) suite.addTest(UCTestCase('testSub')) # 执行测试 runner = unittest.TextTestRunner() runner.run(suite) 3. 当要执行多个测试类,使用TestLoader下的loadTestsFromTestCase. 代码如下: import unittest class TestCaseClass1(unittest.TestCase): def setUp(self): pass def tearDown(self): pass def testCase1(self): print('class 1 test case 1') def testCase2(self): print('class 1 test case 2') class TestCaseClass2(unittest.TestCase): def setUp(self): pass def tearDown(self): pass def testCase1(self): print('class 2 test case 1') def testCase2(self): print('class 2 test case 2') if __name__ == "__main__": # 如何同时测试多个类 suite1 = unittest.TestLoader().loadTestsFromTestCase(TestCaseClass1) suite2 = unittest.TestLoader().loadTestsFromTestCase(TestCaseClass2) suite = unittest.TestSuite([suite1,suite2]) unittest.TextTestRunner(verbosity=2).run(suite) |
|