這可能是一個簡單的問題,但我無法理解它。假設我制作了一個 Django 插件應用程式,我們命名它foo,它添加了一些其他應用程式可以使用的資料庫功能(例如,必須繼承的模型),并且我想為該應用程式添加測驗。結構:
foo/
apps.py
models.py
tests/
test_foo_basic.py
test_bar.py
...
setup.py
README.md
...
該專案不是完整的 Django 應用程式,因為它是其他人的插件應用程式。所以我需要在測驗目錄中創建一個假的Django 專案,至少有一個應用程式,它定義了一些繼承foo.models.<some_model>并測驗它的模型,對吧?
這是唯一的方法嗎?這對我來說似乎不多。
如果是這樣,我可以給我答案“它是這樣的”。我會接受 ;-) 如果不是,請告訴我我很復雜并向我展示一些更簡單的東西,一個 pytest 插件等?為了測驗,我需要一個
uj5u.com熱心網友回復:
經過一番掙扎,我發現了自己。
根據pytest-django docs,您可以使用pytest_configure()inconftest.py為這種情況設定“偽”Django環境:
# conftest.py
import django
from django.conf import settings
def pytest_configure():
settings.configure(
DATABASES={
"default": {
"ENGINE": "django.db.backends.sqlite3",
"NAME": ":memory:",
}
},
INSTALLED_APPS=[
"django.contrib.auth",
"django.contrib.contenttypes",
"django.contrib.sessions",
"django.contrib.messages",
"django.contrib.staticfiles",
"django.contrib.sites",
"your.app"
],
)
django.setup()
這樣,你不需要pytest.ini,不需要DJANGO_SETTINGS_MODULEenv,最好的是:** 你不需要完整的 dummy Django 專案`
如果您需要測驗模塊加載等專案功能,這無濟于事。但是對于簡單的單元測驗,這非常有效。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/411806.html
標籤:
