unittest框架

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中的用例进行执行

unittest框架

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中的用例进行执行

unittest框架

 

上一篇:GitLab CI/CD 进行持续集成


下一篇:用QueryRunner输出数据库中admin表具有的记录条数