Python中有一个自带的单元测试框架是unittest模块,用它来做单元测试,它里面封装好了一些校验返回的结果方法和一些用例执行前的初始化操作。
在说unittest之前,先说几个概念:
TestCase: 测试用例
TestSuite :存测试用例
TestLoader:加载TestSuite中的用例集合
TestRunner:是来执行测试用例的,测试的结果会保存到TestResult实例中,包括运行了多少测试用例,成功了多少,失败了多少等信息
下面写一个简单的单元测试用例:
以下是Test_s.py下面的代码:
import unittest #导入库 class Test_demo(unittest.TestCase): #继承 def test_1(self): #用例 self.assertEqual(1,1) #断言 def test_2(self): self.assertEqual(1,1)
run.py中的代码:
1)只执行一条用例:
import unittest from Test_s import Test_demo #导入用例 suite = unittest.TestSuite() #实例化存用例 suite.addTest(Test_demo("test_1")) #添加用例到suite里面 runner=unittest.TextTestRunner() #实例化执行用例 runner.run(suite) #将suite中的用例进行执行
2)加载类中的用例
import unittest from Test_s import Test_demo #导入用例 suite = unittest.TestSuite() #实例化存用例 loader=unittest.TestLoader() #加载用例 suite.addTest(loader.loadTestsFromTestCase(Test_demo)) #添加类里面的用例到suite里面 runner=unittest.TextTestRunner() #实例化执行用例 runner.run(suite) #将suite中的用例进行执行
3)加载整个模块的用例
import unittest import Test_s #导入用例 suite = unittest.TestSuite() #实例化存用例 loader=unittest.TestLoader() #加载用例 suite.addTest(loader.loadTestsFromModule(Test_s)) #添加用例到suite里面 runner=unittest.TextTestRunner() #实例化执行用例 runner.run(suite) #将suite中的用例进行执行
4)生成txt报告
import unittest import Test_s #导入用例 suite = unittest.TestSuite() #实例化存用例 loader=unittest.TestLoader() #加载用例 suite.addTest(loader.loadTestsFromModule(Test_s)) #添加用例到suite里面 with open("1.txt","w+") as file: #上下文管理器 runner=unittest.TextTestRunner(stream=file,verbosity=2) #实例化执行用例 runner.run(suite) #将suite中的用例进行执行
5)生成HTML报告
import unittest import Test_s,HTMLTestRunner #导入用例 suite = unittest.TestSuite() #实例化存用例 loader=unittest.TestLoader() #加载用例 suite.addTest(loader.loadTestsFromModule(Test_s)) #添加用例到suite里面 with open("1.html","wb") as file: #上下文管理器,二进制文件要用wb runner=HTMLTestRunner.HTMLTestRunner(stream=file,verbosity=2,title="浩哥测试报告",description="描述报告内容") #实例化执行用例 runner.run(suite) #将suite中的用例进行执行