无法使用pytest运行测试,找不到模块

2024-04-25 14:28:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个这样的目录:

| project/
| ---- lib/
| -------- __init__.py
| -------- MyModule.py
| ---- test/
| -------- __init__.py
| -------- test_MyModule.py
| ---- __init__.py

在我的测试文件中,我执行以下操作:

^{pr2}$

以下是MyModule的文本:

class MyModule(object):
    pass

我可以在控制台和文件中运行这个。但由于某些原因,pytest无法发现MyModule。我有个错误说:

E   ImportError: No module named 'project'

我做错什么了?在

更新

我也尝试过,但失败了:

import sys
sys.path.insert(0, "~/project")

不起作用。救命啊。在


Tags: 文件pytest文本目录projectobjectinit
2条回答

它应该是from lib.MyModule import MyModule

我认为问题可能出在Python或pytest版本和/或平台(Windows/Linus发行版)中。 我的环境: MacOS 10.11.6 Python 2.7.13 pytest (3.0.7)

我重新创建了您的项目,无法重新生成您的问题-pytest运行良好:

Dmitry[project]: tree
.
├── __init__.py
├── lib
│   ├── MyModule.py
│   └── __init__.py
└── test
    ├── __init__.py
    └── test_MyModule.py

2 directories, 5 files
Dmitry[project]: cat lib/MyModule.py 
class MyModule(object):
    pass

Dmitry[project]: cat test/test_MyModule.py 
from project.lib.MyModule import MyModule

def test_object():
    o = MyModule()
    assert 1

运行pytest(对我来说,从哪里运行pytest并不重要,只要提供指向dir的正确路径和test模块):

^{pr2}$

相关问题 更多 >