我一直在开发一个项目,其中的目录系统如下所示:
tests/
corpus/
tests.py
monkey/
corpus/
corpus.py
setup.py
我也将 __init__.py
散布在这些目录中。
问题是,当我尝试运行 corpus/tests.py
时,它会提示这样一行代码:import Monkey.corpus as corpus
。
当从根目录使用 -m
开关运行或在根目录中有一个tests.py 文件时,它(可以理解)可以工作。如果我想自动化多个测试,这两个(或可能其他选项)中哪一个是最可取的?
最佳答案
我会将一个 __init__
文件放在 tests
和 monkey
级别,并将其包含到 sys.path
。它显然更实用,因为您不必每次调用它时都指定参数。
此外,如果其他人要使用您的代码,显然他们不会期望每次运行文件时都指定 -m
参数:)
那么,在根目录的__init__
文件中:
root/
/tests
/monkey
__init__.py
希望这有帮助!
关于python - 相对导入和单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20294272/