欢迎访问宙启技术站
智能推送

如何使用Python的unittest_TextTestResult()函数生成单元测试通过率报告

发布时间:2023-12-24 09:49:41

unittest.TextTestResult()函数是Python unittest模块中的一个类,用于生成单元测试的通过率报告。它提供了许多方法来记录和汇总单元测试的结果,并在测试运行结束后生成报告。

下面是一个使用unittest.TextTestResult()函数生成单元测试通过率报告的例子:

import unittest

# 创建一个测试类
class MyTestClass(unittest.TestCase):

    # 定义测试方法
    def test_addition(self):
        result = 2 + 2
        self.assertEqual(result, 4)

    def test_subtraction(self):
        result = 5 - 3
        self.assertEqual(result, 2)

    def test_multiply(self):
        result = 2 * 3
        self.assertEqual(result, 6)

# 创建一个TestSuite对象
suite = unittest.TestSuite()

# 添加测试用例到TestSuite
suite.addTest(MyTestClass('test_addition'))
suite.addTest(MyTestClass('test_subtraction'))
suite.addTest(MyTestClass('test_multiply'))

# 创建一个TextTestRunner对象
runner = unittest.TextTestRunner()

# 运行测试用例
result = runner.run(suite)

# 输出测试结果报告
print("总共运行的测试用例数量:", result.testsRun)
print("测试用例执行通过的数量:", result.wasSuccessful())
print("测试用例执行失败的数量:", len(result.failures))
print("测试用例执行错误的数量:", len(result.errors))

# 打印每个测试用例的执行结果
for test, error in result.errors:
    print("错误:", test)
    print(error)

for test, failure in result.failures:
    print("失败:", test)
    print(failure)

上述代码中,我们创建了一个测试类MyTestClass,有三个测试方法test_additiontest_subtractiontest_multiply,分别进行加法、减法和乘法的单元测试。然后,我们创建了一个TestSuite对象,并添加了这三个测试方法。接下来,我们创建了一个TextTestRunner对象,并运行测试用例。最后,我们分别输出了测试结果的汇总信息,并遍历输出了每个测试方法的执行结果。

通过运行上述代码,我们可以得到类似下面的报告:

总共运行的测试用例数量: 3
测试用例执行通过的数量: True
测试用例执行失败的数量: 0
测试用例执行错误的数量: 0

这表示我们的三个测试用例都执行通过了,通过率为100%。

这就是使用unittest.TextTestResult()函数生成单元测试通过率报告的方法和示例。