2009-11-23 49 views
1

我在Google App Engine上有一個Django應用程序,我想開始編寫單元測試。但我不確定如何設置我的測試。在Django(Google App Engine上),我應該在運行單元測試時調用main.py嗎?

當我運行測試中,我得到以下錯誤:

EnvironmentError: Environment variable DJANGO_SETTINGS_MODULE is undefined. 
ERROR: Module: tests could not be imported. 

這看起來非常簡單的 - 我的Django的設置沒有被初始化。 Google App Engine上的django環境的設置發生在main.py(在app.yaml中指定),但顯然而不是被調用進行單元測試。我的單元測試是否應該通過在main.py中調用main()來開始?我不確定。

回答

1

您應該只是將主入口點的環境變量導出到測試中。根據您的設置,您可以通過導入main.py文件來完成此操作,但將os.environ['DJANGO_SETTINGS_MODULE']行添加到用於運行測試的文件可能非常簡單。

這可能有點困難,這取決於你如何設置測試。您是否使用像鼻子或Django的測試套件工具這樣的testrunner?

0

我對這個問題的最終解決方案是在使用我使用的唯一真正的Django函數template.render_to_string()之前立即添加os.environ ['DJANGO_SETTINGS_MODULE']行。

當我把它放在一個給定的.py文件的頭文件中時,我一直有問題,所以我意識到只要每次都設置它就可以確保它永遠是正確的。

多麼令人沮喪的問題。我真的希望有一個簡單的設置(可能在app.yaml中)選擇Django版本,並將此變量設置爲正確。

唉。

相關問題