绝对导入失败

  • 本文关键字:失败 导入 python
  • 更新时间 :
  • 英文 :


我创建了一个测试,看起来像这样:

import pytest
from datetime import date
from task import task_cm
@pytest.fixture
def setup_database():
db = task_cm.SqliteDatabase(':memory:')
db.task_insert_new(name='Today task',description="Test of description",deadline=date.today)
db.task_insert_new(name='Tommorow Task',deadline=date.today+1)
yield db
def test_connetion(setup_database):
con = setup_database
assert len(list(con.execute('SELECT * FROM tasklist'))) == 2

位于Python测试发现规范推荐的结构中

├── __init__.py
├── readme.md
├── requirements.txt
├── setup.py
├── task
│   ├── cli.py
│   ├── __init__.py
│   ├── __pycache__
│   └── task_cm.py
├── test
│   ├── __pycache__
│   └── task_cm_test.py

但是当我尝试运行测试时,它失败了,错误:

Traceback:
/usr/lib/python3.9/importlib/__init__.py:127: in import_module
return _bootstrap._gcd_import(name[level:], package, level)
test/task_cm_test.py:4: in <module>
from task import task_cm
E   ModuleNotFoundError: No module named 'task'

我已经阅读了整个Import模块文档,但没有找到任何有用的。

您可以使用--import-mode标志,这样它将在运行测试时照顾您的sys.path,并将模块目录添加到其中。

最新更新