我希望pytest-django在创建测试数据库时安装Postgres扩展。我一直在弄混conftest.py尝试使其工作,但是我被卡住了。
我的conftest.py位于项目的顶层(与manage.py相同的目录),并且包含:
from django.db import connection
import pytest_django
@pytest.fixture(scope='session')
def django_db_setup(*args, **kwargs):
pytest_django.fixtures.django_db_setup(*args, **kwargs)
cursor = connection.cursor()
cursor.execute("create extension pg_trgm")
Run Code Online (Sandbox Code Playgroud)
但是当我运行它时,我得到:
_pytest.vendored_packages.pluggy.PluginValidationError: unknown hook 'pytest_django' in plugin <module 'conftest' from '/path/to/my/conftest.py'>
Run Code Online (Sandbox Code Playgroud)
小智 6
您可以使用pre_migrate信号。例如:
from django.db.models.signals import pre_migrate
from django.apps import apps
def app_pre_migration(sender, app_config, **kwargs):
cur = connection.cursor()
cur.execute('CREATE EXTENSION IF NOT EXISTS pg_trgm;')
pre_migrate.connect(app_pre_migration, sender=apps.get_app_config('app'))
Run Code Online (Sandbox Code Playgroud)
希望对您有所帮助。
| 归档时间: |
|
| 查看次数: |
692 次 |
| 最近记录: |