我在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()来开始吗?我不确定。
答案 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版本,并将此变量设置为正确。
哦,好吧。