我在将任何内容导入我打算使用 py.test 运行的测试文件时遇到问题。
我的项目结构如下:
/ProjectName
|
|-- /Title
| |-- file1.py
| |-- file2.py
| |-- file3.py
| |-- __init__.py
|
|-- /test
| |-- test_file1.py
我无法在 pytest 中获得任何与 pytest 一起使用的导入语句test_file1.py
文件,所以我目前只是尝试使用在中声明的变量file_1.py
并打印出来test_file1.py
is run.
file1.py 包含:
file1_variable = "Hello"
test_file1.py 包含:
import sys
import os
sys.path.append(os.path.abspath('../Title'))
import file1
def test_something():
assert file1.file1_variable == "Hello"
print(file1.file1_variable)
我的测试文件中的导入语句取自https://stackoverflow.com/a/10272919/5477580 https://stackoverflow.com/a/10272919/5477580它通过编辑 PYTHONPATH 变量来工作。这允许我运行test_file1.py
脚本并成功执行print
陈述。
然而,尝试运行py.test
来自/ProjectName
目录给我一个错误说ImportError: No module named 'file1'
有什么方法可以更好地构建事物,以便 pytest 成为可能吗?我需要添加一些东西到我的__init__.py
file?
不,你不需要添加任何东西__init__.py
。该文件告诉 python 将父目录视为模块,可以将其导入为此处描述 https://docs.python.org/2/tutorial/modules.html#packages。
只需将其添加到您的 Title 目录中并像这样导入
from ..Tiltle.file import file1_variable
在这里,我们将目录中的 1 个层次结构移至上方,就像cd ..
Note ..
用于从以下位置获取标题包test目录。如果您需要运行您的文件项目名你必须做的目录
from Tiltle.file import file1_variable
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)