在Django(在Google App Engine上),我应该在运行单元测试时调用main.py吗?

时间:2009-11-23 15:10:58

标签: django google-app-engine

我在Google App Engine上有一个Django应用程序,我想开始编写单元测试。但我不确定如何设置我的测试。

当我运行测试时,出现以下错误:

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()来开始吗?我不确定。

2 个答案:

答案 0 :(得分:1)

您可能只需将主入口点中的环境变量导出到测试中。根据您的设置,您可以通过导入main.py文件来实现,但将os.environ['DJANGO_SETTINGS_MODULE']行添加到用于运行测试的文件中可能非常简单。

这可能有点困难,具体取决于您如何设置测试。您使用的是像鼻子或Django的测试套件工具一样的测试人员吗?

答案 1 :(得分:0)

我对此问题的最终解决方案是在使用我使用的唯一真正的Django函数template.render_to_string()之前立即添加os.environ ['DJANGO_SETTINGS_MODULE']行。

当我在给定.py的标题中将其设置为未设置时,我一直遇到问题,所以我意识到每次设置它都会确保它始终是正确的。

多么令人沮丧的问题。我真的希望有一个简单的设置(可能在app.yaml中),它将选择Django版本,并将此变量设置为正确。

哦,好吧。