python 语言中有很多单元测试框架和工具,而unittest单元测试框架作为标准python语言中的一个模块。是其他框架和工具的基础。 想要进行单元测试,我们需要使用到unittest框架中的功能。在unittest框架中: TestCase(测试用例):对应功能模块里一条条用例 TestSuite (测试套件)多个测试用例集合在一起,就是TestSuite,就是一个功能模块的所有用例放这里了 TestLoader:是用来加载TestCase到TestSuite中。 TestRunner(测试运行器):是来执行测试用例的,测试的结果会保存到TestResult实例中,包括运行了多少测试用例,成功了多少,失败了多少等信息
import unittest #导入unittest模块class mytest1(unittest.TestCase): #定义测试用例的类 def test1(self): #定义测试用例,测试用例必须以test开头,否则不会识别为测试用例 self.assertEqual(1,1) #测试用例断言,比较预期结果与实际结果,这里1==1,显然结果是pass def test2(self): self.assertEqual(2,1) #测试用例断言,比较预期结果与实际结果,这里2==1,显然结果是failclass mytest2(unittest.TestCase): #定义测试用例的类 def test4(self): self.assertEqual(1,1) def test5(self): self.assertEqual(3,2)if __name__=='__main__': suite=unittest.TestSuite() #定义一个测试套件 suite.addTest(unittest.makeSuite(mytest1)) #向测试套件里新增这个类下的所有测试用例 suite.addTest(unittest.makeSuite(mytest2)) unittest.TextTestRunner(verbosity=2).run(suite) #运行测试用例
测试结果:在测试结果中,我们运行的测试用例情况。成功了多少,失败了多少。失败的原因。
上述写法,会在命令行显示测试结果。单元测试结束后,可以通过HTMLTestRunner生成HTML测试报告,即便于阅读,也美观。使用HTMLTestRunner模块就可以将测试报告结果以HTML页面的形式展现出来。上述代码调整如下:(红色字体部分为调整部分)
import unittest #导入unittest模块import HTMLTestRunnerclass mytest1(unittest.TestCase): #定义测试用例的类 def test1(self): #定义测试用例,测试用例必须以test开头,否则不会识别为测试用例 self.assertEqual(1,1) #测试用例断言,比较预期结果与实际结果,这里1==1,显然结果是pass def test2(self): self.assertEqual(2,1) #测试用例断言,比较预期结果与实际结果,这里2==1,显然结果是failclass mytest2(unittest.TestCase): #定义测试用例的类 def test4(self): self.assertEqual(1,1) def test5(self): self.assertEqual(3,2)if __name__=='__main__': suite=unittest.TestSuite() #定义一个测试套件 suite.addTest(unittest.makeSuite(mytest1)) #向测试套件里新增这个类下的所有测试用例 suite.addTest(unittest.makeSuite(mytest2)) #unittest.TextTestRunner(verbosity=2).run(suite) #运行测试用例 filename="E:\\UTesting.html" fp=open(filename,'wb') runner=HTMLTestRunner.HTMLTestRunner(stream=fp,title='zwh UTesting report',description='the report is test!!') runner.run(suite)
在E盘,我们会发现生成的测试报告:UTesting.html