2015-02-11 73 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")