这段代码是一个使用unittest模块编写的测试运行程序。它的主要功能是加载其他Python文件中的测试用例并运行这些测试用例。
首先,定义了一个主测试类MainTestCase,该类继承自unittest.TestCase。在这个类中,可以添加各种测试方法来测试不同的功能或模块。
然后,通过unittest.TestLoader()创建一个测试加载器对象loader,用于加载其他Python文件中的测试用例。测试用例可以通过loadTestsFromName()方法指定具体的测试用例名称。
接下来,定义了一个test_cases列表,其中存放了需要加载的其他Python文件中的测试用例。每个测试用例都使用loader.loadTestsFromName()方法加载,并添加到主测试类MainTestCase中。你可以根据需要,添加更多的测试文件和测试用例。
然后,创建一个测试套件suite,并将之前加载的所有测试用例添加到这个测试套件中。使用loader.loadTestsFromTestCase(MainTestCase)可以将MainTestCase类中的所有测试方法添加到测试套件中。
最后,创建一个测试运行器对象runner,并使用runner.run(suite)运行测试套件中的所有测试用例。通过设置verbosity参数为2,可以在控制台输出更详细的测试结果。
main.py
import unittest
# from Testcase2 import TestcaseGo
class MyTestcase(unittest.TestCase):
def test_1(self):
print('main_test_1')
self.assertEqual(2 + 2, 4)
def test_2(self):
print('main_test_2')
self.assertEqual(2 + 2, 4)
Testcase2.py
import unittest
class TestcaseGo(unittest.TestCase):
def test_1(self):
print('TestcaseGo_test_1')
self.assertEqual(2 + 2, 4)
def test_2(self):
print('TestcaseGo_test_2')
self.assertEqual(2 - 2, 4)
def test_3(self):
print('TestcaseGo_test_3')
self.assertEqual(2 + 2, 4)
run.py
import unittest
# 创建主测试类
class MainTestCase(unittest.TestCase):
pass
if __name__ == '__main__':
# 创建测试加载器
loader = unittest.TestLoader()
# 加载其他Python文件中的测试用例并添加到主测试类中
test_cases = [
loader.loadTestsFromName('main.MyTestcase'),
loader.loadTestsFromName('Testcase2.TestcaseGo')
# 添加更多的测试文件和测试用例
]
suite = unittest.TestSuite(test_cases)
suite.addTests(loader.loadTestsFromTestCase(MainTestCase))
# 创建测试运行器并运行测试
runner = unittest.TextTestRunner(verbosity=2)
runner.run(suite)