使用子文件夹进行Python单元测试发现

tom*_*ahh 22 python unit-testing discover

我的unittest文件夹以这种方式组织.

.
|-- import
|   |-- import.kc
|   |-- import.kh
|   `-- import_test.py
|-- module
|   |-- module.kc
|   |-- module.kh
|   `-- module_test.py
`-- test.py
Run Code Online (Sandbox Code Playgroud)

我想简单地运行test.py我的每个*_test.py使用unittest python模块.目前,我的test.py包含

#!/usr/bin/env python

import unittest

if __name__ == "__main__":
    suite = unittest.TestLoader().discover('.', pattern = "*_test.py")
    unittest.TextTestRunner(verbosity=2).run(suite)
Run Code Online (Sandbox Code Playgroud)

python文档说它应该自动在子文件夹中发现我的测试.但事实并非如此.

目前,它只输出

----------------------------------------------------------------------
Ran 0 tests in 0.000s

OK
Run Code Online (Sandbox Code Playgroud)

我确定这不是我的*_test.py文件的问题,因为当我将它们移动到根目录时,它工作正常..我做错了什么?

War*_*ser 29

添加__init__.pyimportmodule目录.

  • 这是实现测试发现的方式的工件.实质上,包含测试的每个目录都必须可以作为Python模块导入.有关详细信息,请参阅[docs](http://docs.python.org/2/library/unittest.html#test-discovery). (3认同)