运行使用from ... import *导入的所有unittest.TestCase

时间:2018-02-26 09:25:51

标签: python python-3.x python-unittest

我有以下套餐:

  • 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.pytests/test_module_b.py文件中,我有以下内容:

import unittest

class TestMyModule(unittest.TestCase):

  def test_something(self):
    self.assertTrue(True)

当我运行python tests.py时,子模块似乎已导入,但我的unittest.TestCase未运行。为什么?感谢。

1 个答案:

答案 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)