2015-02-11 50 views
0

我想在Django web应用程序上用pybuilder编写集成测试,但我似乎无法使其工作。发生(从Django应用程序内)的示例错误:Django项目上的Pybuilder集成测试

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_MODULEbuild.py定义,像这样:

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

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

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

回答

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")