python - 相对导入和单元测试

标签 python testing import directory

我一直在开发一个项目,其中的目录系统如下所示:

tests/
    corpus/
        tests.py
monkey/
    corpus/
        corpus.py

setup.py

我也将 __init__.py 散布在这些目录中。

问题是,当我尝试运行 corpus/tests.py 时,它会提示这样一行代码:import Monkey.corpus as corpus

当从根目录使用 -m 开关运行或在根目录中有一个tests.py 文件时,它(可以理解)可以工作。如果我想自动化多个测试,这两个(或可能其他选项)中哪一个是最可取的?

最佳答案

我会将一个 __init__ 文件放在 testsmonkey 级别,并将其包含到 sys.path。它显然更实用,因为您不必每次调用它时都指定参数。

此外,如果其他人要使用您的代码,显然他们不会期望每次运行文件时都指定 -m 参数:)

那么,在根目录的__init__文件中:

root/
   /tests
   /monkey
   __init__.py

希望这有帮助!

关于python - 相对导入和单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20294272/

相关文章:

python - apscheduler 不能正常工作

python - 在 html 元素上使用 text_content() 时避免连续出现单词的可靠方法

html - 获取testcafe菜单中所有元素的文本

python - 测试发生了多少方法调用以及传递了哪些参数(测试 django mixin 类)

java - Grails 导入 groovy http 构建器

php - MySql 中的批量导入查询 - joomla

css - 手写笔,正确的子目录导入顺序

python - 寻找支持 Python 的在线判断引擎

python - 从列表中删除正则表达式元素

algorithm - 未知正确输出时有效验证程序逻辑的方法