小编典典

使用典型的测试目录结构运行 unittest

all

即使是一个简单的 Python 模块,非常常见的目录结构似乎是将单元测试分离到它们自己的test目录中:

new_project/
    antigravity/
        antigravity.py
    test/
        test_antigravity.py
    setup.py
    etc.

例如看这个Python 项目 howto

我的问题很简单 ,实际运行测试的通常方式是什么? 我怀疑这对除了我之外的每个人来说都是显而易见的,但你不能只python test_antigravity.py从测试目录运行,因为它import antigravity会失败,因为模块不在路径上。

我知道我可以修改 PYTHONPATH 和其他与搜索路径相关的技巧,但我不敢相信这是最简单的方法 -
如果您是开发人员,这很好,但如果他们只想检查测试,期望您的用户使用是不现实的通过。

另一种选择是将测试文件复制到另一个目录中,但这似乎有点愚蠢,并且错过了将它们放在单独的目录中开始的意义。

那么,如果您刚刚将源代码下载到我的新项目中,您将如何运行单元测试?我更喜欢一个能让我对我的用户说的答案:“运行单元测试做 X。”


阅读 221

收藏
2022-03-01

共1个答案

小编典典

我认为最好的解决方案是使用unittest
命令行界面,它将目录添加到目录中,sys.path这样你就不必(在TestLoader课堂上完成)。

例如对于这样的目录结构:

new_project
2022-03-01