我在\ tests中保存了几个测试模块。然后我通过指定
在运行主程序之前将它们加载到主类中from tests.ClassTests1 import *
from tests.ClassTests2 import *
...
unittest.main()
有没有办法指示unittest.main()运行\ tests中的所有文件,而无需像上面那样无限次重复导入它们?例如。我尝试了from tests import *
但它不起作用。
编辑:我是在程序化发现之后,而不是通过命令行发现。
非常感谢!
答案 0 :(得分:2)
感谢John Gordon的链接。以下是使它对我有用的原因:
from tests.ClassTests1 import *
# Run test cases first
suite = unittest.TestLoader().discover('tests', pattern='ClassTests*.py')
result = unittest.TextTestRunner(verbosity=2).run(suite)
但是,我仍然需要导入至少一个测试模块,我不确定我是否正确执行此操作,因为它发现了tests
的整个测试层次结构。
答案 1 :(得分:0)
来自https://docs.python.org/2/library/unittest.html,第25.3.3节。测试发现:
Unittest支持简单的测试发现。为了与测试发现兼容,所有测试文件必须是可从项目的顶级目录导入的模块或包(这意味着它们的文件名必须是有效的标识符)。
测试发现在TestLoader.discover()中实现,但也可以从命令行使用。基本命令行用法是:
cd project_directory
python -m unittest discover