我在将任何内容导入我打算使用 py.test 运行的测试文件时遇到问题。
我的项目结构如下:
/ProjectName
|
|-- /Title
| |-- file1.py
| |-- file2.py
| |-- file3.py
| |-- __init__.py
|
|-- /test
| |-- test_file1.py
我无法在
test_file1.py
文件中获得任何与 pytest 一起使用的导入语句,因此我目前只是尝试使用 file_1.py
中声明的变量并在 test_file1.py
运行时将其打印出来。
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,它通过编辑 PYTHONPATH 变量来工作。这允许我运行
test_file1.py
脚本并成功执行 print
语句。
但是,尝试从
py.test
目录运行 /ProjectName
会出现错误,提示 ImportError: No module named 'file1'
有什么方法可以让我更好地构建事物,以便 pytest 成为可能吗?我需要在我的
__init__.py
文件中添加一些内容吗?