即使是一个简单的 Python 模块,非常常见的目录结构似乎是将单元测试分离到它们自己的test目录中:
test
new_project/ antigravity/ antigravity.py test/ test_antigravity.py setup.py etc.
例如看这个Python 项目 howto。
我的问题很简单 ,实际运行测试的通常方式是什么? 我怀疑这对除了我之外的每个人来说都是显而易见的,但你不能只python test_antigravity.py从测试目录运行,因为它import antigravity会失败,因为模块不在路径上。
python test_antigravity.py
import antigravity
我知道我可以修改 PYTHONPATH 和其他与搜索路径相关的技巧,但我不敢相信这是最简单的方法 - 如果您是开发人员,这很好,但如果他们只想检查测试,期望您的用户使用是不现实的通过。
另一种选择是将测试文件复制到另一个目录中,但这似乎有点愚蠢,并且错过了将它们放在单独的目录中开始的意义。
那么,如果您刚刚将源代码下载到我的新项目中,您将如何运行单元测试?我更喜欢一个能让我对我的用户说的答案:“运行单元测试做 X。”
我认为最好的解决方案是使用unittest 命令行界面,它将目录添加到目录中,sys.path这样你就不必(在TestLoader课堂上完成)。
unittest
sys.path
TestLoader
例如对于这样的目录结构:
new_project