django manage.py测试验证失败
当我运行django的测试套件时,我在auth应用程序上得到错误。我(显然)没有编写任何auth代码,也没有为auth编写测试。然而,身份验证测试失败了。以下是我得到的一些错误,整个stacktrace太大,无法放在这里: 以前有人处理过这个问题吗django manage.py测试验证失败,django,testing,authentication,Django,Testing,Authentication,当我运行django的测试套件时,我在auth应用程序上得到错误。我(显然)没有编写任何auth代码,也没有为auth编写测试。然而,身份验证测试失败了。以下是我得到的一些错误,整个stacktrace太大,无法放在这里: 以前有人处理过这个问题吗 AttributeError: 'module' object has no attribute 'handler500' DoesNotExist: UserProfile matching query does not exist. ----
AttributeError: 'module' object has no attribute 'handler500'
DoesNotExist: UserProfile matching query does not exist.
----------------------------------------------------------------------
Ran 30 tests in 3.813s
FAILED (errors=17)
Destroying test database...
我想出来了。如果auth应用程序使用复杂的模板呈现默认的auth模板视图,则auth测试中的测试失败。auth应用程序使用应用程序使用的模板进行自我测试。我已将默认设置更改为与网站其他部分相同的模板 我在模板中犯的错误:
- 使用auth应用程序未知的变量和反向URL。 在我的例子中,它包含auth模板中的用户配置文件信息(当然,在您未登录时不可用)和导致auth应用程序测试出错的错误url反向标记
<body>
<div id="header">
{% block mainmenu %}{% endblock %}
</div>
<div id="userbar">
{% block userbar %}{% endblock %}
</div>
<div id="bigcontent">
{% block bigcontent %}{% endblock %}
</div>
</body>
现在,我的应用程序中的所有模板都扩展了基本内容模板,该模板包含显示在每个页面上的内容。
这样你就不会重复你自己,你的模板代码也会变得非常枯燥,只需使用base.content模板进行身份验证就可以使身份验证测试成功
{% extends "base.html" %}
{% load i18n %}
{% block mainmenu %}
...content..
{% endblock %}