Max*_*cer 12 python import unit-testing
我刚刚完成了正在编写的项目的核心部分,我想在继续之前使用unittest为它编写测试.我知道我之前应该这样做,但是当我开始时我不知道Python,所以..无论如何......
我想要实现的目标:我有一个主包的子包,其中包含我要在其中测试的所有模块.我想把一个子包装放在名为'tests'的内容中,或者包含我所有测试用例的东西,我希望能够从包外部汇总到一个测试套件中,这样我最终可以运行所有测试整个项目一气呵成.
结构是这样的:
/projectPackage
/projectPackage/package
/projectPackage/package/\__init__.py (empty)
/projectPackage/package/someModule.py
/projectPackage/package/... (more modules)
/projectPackage/package/testing.py (runs all the tests in /tests/)
/projectPackage/package/tests
/projectPackage/package/tests/\__init__.py (empty)
/projectPackage/package/tests/someModuleTests.py
Run Code Online (Sandbox Code Playgroud)
我遇到的问题:
someModuleTests必须从父包导入someModule,以便它可以测试其方法.这似乎不起作用.我得到各种错误,如:
Attempted relative import beyond toplevel package
Run Code Online (Sandbox Code Playgroud)
无论如何,我希望这只是因为我是一个Python菜鸟!我有自己的想法,我将如何为这个项目做这件事,因为当然每个都是不同的,但是对于中大型python项目的结构化的任何一般建议也是值得赞赏的.
sup*_*een 16
从父目录运行单元测试,使目录位于PYTHONPATH中(当前工作目录始终为).这是通过从父目录执行测试文件或使用nosetest之类的东西来完成的,它会以递归方式查找程序包中的所有测试.
不要使用相对导入,它们会导致这样的事情.不要破解你的PYTHONPATH和/或sys.path来尝试修复它.
| 归档时间: |
|
| 查看次数: |
7524 次 |
| 最近记录: |