Python:如何在子目录中运行unittest.main()以针对所有源文件?
- 论坛
- Python:如何在子目录中运行unittest.main()以针对所有源文件?
13 浏览
Python:如何在子目录中运行unittest.main()以针对所有源文件?
我正在开发一个Python模块,它包含多个源文件,每个源文件都有自己的测试类,继承自unittest。考虑以下目录结构:
dirFoo\ test.py dirBar\ __init__.py Foo.py Bar.py
为了测试Foo.py或者Bar.py,我会在Foo.py和Bar.py的源文件末尾添加以下代码:
if __name__ == "__main__": unittest.main()
然后在命令行上运行Python,例如:
$ python Foo.py ........... ---------------------------------------------------------------------- Ran 11 tests in 2.314s OK
理想情况下,我希望"test.py"能够自动搜索dirBar中的所有继承自unittest的类,并调用"unittest.main()"一次。在实际操作中,怎样做才是最好的方式呢?
我尝试使用Python调用execfile来运行dirBar中的每个*.py文件,但这样只会运行找到的第一个.py文件并退出test.py的调用,而且我还需要在每个源文件中重复添加unittest.main()代码,这违反了DRY原则。