【发布时间】:2010-10-13 06:56:35
【问题描述】:
我正在开发一个包含多个源文件的 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 为 dirBar 中的每个 *.py 文件调用 execfile,该文件为找到的第一个 .py 文件运行一次并退出调用 test.py,然后我必须通过添加 unittest 来复制我的代码.main() 在每个源文件中——这违反了 DRY 原则。
【问题讨论】:
标签: python unit-testing