python 单元测试之初次尝试

时间:2024-10-18 13:34:20
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,显然结果是fail class 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) #运行测试用例

测试结果:在测试结果中,我们运行的测试用例情况。成功了多少,失败了多少。失败的原因。

python 单元测试之初次尝试

上述写法,会在命令行显示测试结果。单元测试结束后,可以通过HTMLTestRunner生成HTML测试报告,即便于阅读,也美观。使用HTMLTestRunner模块就可以将测试报告结果以HTML页面的形式展现出来。上述代码调整如下:(红色字体部分为调整部分)

import unittest #导入unittest模块
import HTMLTestRunner
class mytest1(unittest.TestCase): #定义测试用例的类 def test1(self): #定义测试用例,测试用例必须以test开头,否则不会识别为测试用例
self.assertEqual(1,1) #测试用例断言,比较预期结果与实际结果,这里1==1,显然结果是pass def test2(self):
self.assertEqual(2,1) #测试用例断言,比较预期结果与实际结果,这里2==1,显然结果是fail class 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

python 单元测试之初次尝试