我无法将任何内容导入到我打算使用py.test运行的测试文件中。
我的项目结构如下:
/ProjectName
|
|-- /Title
| |-- file1.py
| |-- file2.py
| |-- file3.py
| |-- __init__.py
|
|-- /test
| |-- test_file1.py
我无法在test_file1.py
文件中使用pytest获取任何import语句,因此我目前只是尝试使用file_1.py
中声明的变量并在{{1}时将其打印出来运行。
file1.py包含:
test_file1.py
test_file1.py包含:
file1_variable = "Hello"
我的测试文件中的import语句来自https://stackoverflow.com/a/10272919/5477580,它通过编辑PYTHONPATH变量来工作。这允许我运行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)
脚本并成功执行test_file1.py
语句。
但是,尝试从print
目录运行py.test
会出现错误/ProjectName
有没有什么方法可以让我更好地构建事物,以便pytest可以实现?我是否需要在ImportError: No module named 'file1'
文件中添加内容?
答案 0 :(得分:3)
不,您不需要向__init__.py
添加任何内容。该文件告诉python将父目录视为可以导入为described here的模块。
只需将其添加到您的Title目录并将其导入为
from ..Tiltle.file import file1_variable
这里我们在目录中移动1层次,就像cd ..
注意..
用于从测试目录中访问标题包。如果您需要从 ProjectName 目录运行文件,则必须执行
from Tiltle.file import file1_variable