我有以下套餐:
tests.py
__init__.py
test_module_a.py
test_module_b.py
在我的tests.py
文件中,我执行以下操作:
import unittest
from tests import *
if __name__ == "__main__":
unittest.main()
在我的tests/__init__.py
以下内容中:
__all__ = ["test_module_a", "test_module_b"]
在我的tests/test_module_a.py
和tests/test_module_b.py
文件中,我有以下内容:
import unittest
class TestMyModule(unittest.TestCase):
def test_something(self):
self.assertTrue(True)
当我运行python tests.py
时,子模块似乎已导入,但我的unittest.TestCase
未运行。为什么?感谢。
答案 0 :(得分:0)
使用测试加载器并显式导入每个测试用例(更具可读性):
import unittest
from test_module_a import TestMyModule1
from test_module_b import TestMyModule2
if __name__ == "__main__":
loader = unittest.TestLoader()
suite = unittest.TestSuite((loader.loadTestsFromTestCase(TestMyModule1),
loader.loadTestsFromTestCase(TestMyModule2),
)
)
runner = unittest.TextTestRunner(verbosity=2)
runner.run(suite)