我创建了一个测试,看起来像这样:
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
,并将模块目录添加到其中。