使用测试套件文件
一种可能的解决方案是编写一个如下所示的测试套件文件:
import unittest
from test import test_1
from my_submodule.test import test_2
loader = unittest.TestLoader()
suite = unittest.TestSuite()
suite.addTest(loader.loadTestsFromModule(test_1))
suite.addTest(loader.loadTestsFromModule(test_2))
runner = unittest.TextTestRunner(verbosity=3)
result = runner.run(suite)
将之前的文件保存在你的文件夹project
中,并将其命名为runner_test.py
。该代码使用了模块unittest
的3个类:
TestLoader
TestSuite
TextTestRunner
关于这些类的信息可以在文档中找到。
还有许多其他编写测试套件的方法:例如,请参阅此文章及其相关链接。
我已经编写了两个示例测试文件,如下所示:
project/test/test_1.py
import unittest
class MyTestCase(unittest.TestCase):
def test_1(self):
print("test1")
self.assertEqual("test1", "test1")
if __name__ == '__main__':
unittest.main()
project/my_submodule/test/test_2.py
import unittest
class MyTestCase(unittest.TestCase):
def test_1(self):
print("test1")
self.assertEqual("test1", "test1")
if __name__ == '__main__':
unittest.main()
如果你执行以下命令:
> cd /path/to/folder/project
> python runner_test.py
前一个命令(
python runner_test.py
)的输出如下:
test_1 (test.test_1.MyTestCase) ... test1
ok
test_2 (my_submodule.test.test_2.MyTestCase) ... test2
ok
----------------------------------------------------------------------
Ran 2 tests in 0.000s
OK