【Python单元测试】04、TestSuite测试包及用法

根据 ‘C语言中文网’ 该链接下的文章学习整理,点击此处即可访问。本文对此进行了提炼精简并做了适当的修改,如有侵权请私信我删除。


测试包(TestSuite)可以组织多个测试用例,测试包还可以嵌套测试包。在使用多个测试包组织多个测试用和测试包之后,程序可以使用测试运行器(TestRunner)来运行该测试包所包含的所有测试用例。

功能代码:

# hello.py
def say_hello():
	return "Hello Python"

def add(a, b):
	return a + b

测试代码:

# test_hello.py
import unittest
from .hello import *

class TestHello(unittest.TestCase):
    # 测试 say_hello() 函数
    def test_say_hello(self):
        self.assertEqual(say_hello(), 'Hello Python')

    # 测试 add() 函数
    def test_add(self):
        self.assertEqual(add(1, 2), 3)
        self.assertEqual(add(-3, 7), 4)
        self.assertEqual(add(0, -3), -3)

将 python_unittest.py 和 test_hello.py 文件放在同一目录,此时程序就可以通过 TestSuite 将它们组织在一起,然后使用 TestRunnner 来运行该测试包。

# test_suite.py
import unittest

from PythonTest.python_unittest import TestFkMath
from PythonTest.test_hello import TestHello

test_cases = (TestHello, TestFkMath)

def whole_suite():
    # 创建测试加载器
    loader = unittest.TestLoader()

    # 创建测试包
    suite = unittest.TestSuite()

    # 遍历所有测试类
    for test_class in test_cases:
        # 从测试类中加载测试用例
        tests = loader.loadTestsFromTestCase(test_class)
        # 将测试用例添加到测试包中
        suite.addTests(tests)
    return suite


if __name__ == "__main__":
    with open('test_report.txt', 'a') as f:
        # 创建测试运行器(TestRunner),并将测试报告输出到文件中
        runner = unittest.TextTestRunner(verbosity=2, stream=f)
        runner.run(whole_suite())

TextTestRunner,它是一个测试运行器,专门用于运行测试用例和测试包。
【Python单元测试】04、TestSuite测试包及用法_第1张图片

你可能感兴趣的:(【Python单元测试】04、TestSuite测试包及用法)