【发布时间】:2017-06-05 20:05:11
【问题描述】:
我正在尝试将 pytest-django 添加到我当前的 pytest3/Django1.7 环境中。
目前我们没有使用该插件,并且在某些测试之间存在共享状态
当我收到以下错误消息时,一切看起来都很好,并且测试似乎一直通过:
request = <SubRequest '_django_db_marker' for <Function 'test_filter_recurring_outside_sync_window'>>
@pytest.fixture(autouse=True)
def _django_db_marker(request):
"""Implement the django_db marker, internal to pytest-django.
This will dynamically request the ``db`` or ``transactional_db``
fixtures as required by the django_db marker.
"""
marker = request.keywords.get('django_db', None)
if marker:
validate_django_db(marker)
if marker.transaction:
getfixturevalue(request, 'transactional_db')
else:
getfixturevalue(request, 'db')
ve/lib/python2.7/site-packages/pytest_django/plugin.py:376:
self = <django.db.backends.sqlite3.base.SQLiteCursorWrapper object at 0x11976a478>
query = 'SELECT "django_migrations"."app", "django_migrations"."name" FROM "django_migrations"', params = ()
def execute(self, query, params=None):
if params is None:
return Database.Cursor.execute(self, query)
query = self.convert_query(query)
> return Database.Cursor.execute(self, query, params)
E OperationalError: no such table: django_migrations
ve/lib/python2.7/site-packages/django/db/backends/sqlite3/base.py:485: OperationalError
我尝试在conftest.py 中使用ensure_schema 创建表。
我已经尝试了--nomigrations 和--create-db 到pytest 的所有选项。
我猜这是我在使用旧系统时遇到的一个奇怪的配置问题,但我不确定从哪里开始寻找。有人有建议吗?
【问题讨论】:
-
您是否尝试过 makemigrations 并分别为每个应用程序迁移?这有时可能会解决您的问题
-
你在使用
py.test /path/to/django/project --nomigrations --ds=myproject.settings.test之类的东西吗?你运行的命令是什么?
标签: python django testing database-migration pytest