Django 测试客户端忽略 Django 模板中的 "include" 个术语
Django test client ignores "include" terms in Django template
我对 Django 测试客户端有疑问。
对于 home
路径,我有这个模板 (home.html
):
<html>
<body>
{% include 'example.html' %}
</body>
</html>
并且在 example.html
我有错误:
<div>
{% non_registered_tag arg1 arg2 %}
</div>
我编写了一个 Django 可访问性测试 URL。
class HomePageAccess(TestCase):
def test_home_page(self):
client = Client()
response = client.get(reverse_lazy('home'))
self.assertEqual(response.status_code, 200)
如果 home.html
中有错误,此代码会成功失败,但是如果 example.html
中有错误,包含在 home.html
中,测试将通过,即使我们期望失败,因为我将它包含在 home.html
中,并且在浏览器中遇到错误(状态代码 500),而这在测试客户端中没有发生。
正常吗?我正在使用 Django 2.0.2。
任何帮助将不胜感激
我怀疑这里发生的事情是您在 TEMPLATES
设置的 OPTIONS
部分中将 debug
选项设置为 False
,或者您忽略了它完全(在这种情况下,它采用整体 DEBUG
设置的值)。
将 debug
显式设置为 True
应该会暴露错误,您的测试应该会按预期失败。
TEMPLATES = [
{
...
'OPTIONS': {
'debug': True,
},
},
]
有关 debug
设置的更多信息,请参阅 Django 文档的模板部分 here。
我对 Django 测试客户端有疑问。
对于 home
路径,我有这个模板 (home.html
):
<html>
<body>
{% include 'example.html' %}
</body>
</html>
并且在 example.html
我有错误:
<div>
{% non_registered_tag arg1 arg2 %}
</div>
我编写了一个 Django 可访问性测试 URL。
class HomePageAccess(TestCase):
def test_home_page(self):
client = Client()
response = client.get(reverse_lazy('home'))
self.assertEqual(response.status_code, 200)
如果 home.html
中有错误,此代码会成功失败,但是如果 example.html
中有错误,包含在 home.html
中,测试将通过,即使我们期望失败,因为我将它包含在 home.html
中,并且在浏览器中遇到错误(状态代码 500),而这在测试客户端中没有发生。
正常吗?我正在使用 Django 2.0.2。 任何帮助将不胜感激
我怀疑这里发生的事情是您在 TEMPLATES
设置的 OPTIONS
部分中将 debug
选项设置为 False
,或者您忽略了它完全(在这种情况下,它采用整体 DEBUG
设置的值)。
将 debug
显式设置为 True
应该会暴露错误,您的测试应该会按预期失败。
TEMPLATES = [
{
...
'OPTIONS': {
'debug': True,
},
},
]
有关 debug
设置的更多信息,请参阅 Django 文档的模板部分 here。