我正在尝试使用我的项目设置pytest,目录结构如下所示。
├──
├── README.md
├── my_code
│ ├── __init__.py
│ ├── __main__.py
│ └── target_file.py
└── tests
│ ├── __init__.py
│ └── test_one.py
在我的test_one.py中,我正在使用
导入target_file.py
import sys
import os
sys.path.insert(0, "my_code")
如果我从根目录中的命令行运行pytest,这是有效的。但是,如果我cd
进入另一个目录,例如进入tests
,我会收到一条错误消息,指出模块my_code
没有属性bla bla bla。我认为这是因为我导入的方式,这取决于我实际在目录中的位置。因此,如果我在tests
目录中,那么它将尝试从不存在的/root/tests/my_code
导入。有没有办法将target_file.py
导入test_one.py
,这样无论我在哪里,我都可以在命令行上运行pytest,以便运行我的测试?现在,我必须转到根目录,以便导入正常工作。
答案 0 :(得分:1)
将项目主目录的完整路径添加到sys.path,而不仅是相对路径。 在linux下,这从/包含自述文件
的目录开始