0

我正在尝试在 Django Web 应用程序上使用 pybuilder 编写集成测试,但我似乎无法使其工作。发生的示例错误(来自 Django 应用程序):

django.core.exceptions.ImproperlyConfigured: Requested setting CACHES, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.

DJANGO_SETTINGS_MODULE 在 中定义build.py,如下所示:

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "app.settings")

项目存储在 中src/main/python,集成测试在 中src/integrationtest/python,就像 pybuilder 的文档说的那样。

我尝试DJANGO_SETTINGS_MODULE在很多不同的地方手动设置,包括build.py测试用例本身。这同样适用于settings.configure()。但它根本不想工作,我不知道我错过了什么。我已经没有想法尝试什么了。

4

1 回答 1

1

我已添加os.environ.setdefault("DJANGO_SETTINGS_MODULE", "app.settings")到该initialize函数中,并且不再出现此错误。

完整的 build.py 清单:

from pybuilder.core import init, use_plugin
import os

use_plugin("python.core")
use_plugin("python.unittest")
use_plugin("python.django")

default_task = "publish"


@init
def initialize():
    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "myapp.settings")
于 2015-03-11T14:11:01.317 回答