我知道django测试用例是用DEBUG = False和TEMPLATE_DEBUG = False完成的,并且我可以使用
将其更改为True以用于特定功能from django.test.utils import override_settings
@override_settings(DEBUG=True)
def test_one_function(self):
# This test should be failing and is not.
# If I did not test manually I would'nt know !
pass
但也许有更好的,更通用的解决方案可以同时申请eveything?
我的模板中有错误:我包含了另一个模板,链接已损坏。如果我用DEBUG = True手动检查我得到TemplateDoesNotExist错误。但是在我的测试用例中,url是在没有破坏包含的情况下呈现的,它不会抛出错误,http_status是200.我已经在其他地方测试了非常通用的包含模板,所以我不想添加测试来查看是否什么是内部正确呈现。但我希望看到渲染失败,这就是我的测试!
我尝试将TEMPLATE_STRING_IF_INVALID设置为异常(找到here),但它似乎不适用于损坏的包含。
有没有办法在测试期间使所有渲染错误引发异常而不破坏django在调试中不运行测试的设计原则?
答案 0 :(得分:2)
您可以使用--debug-mode为所有测试设置DEBUG = True。示例:
$ ./manage.py test --debug-mode
另一种解决方案是等待Django 2.1(尚未发布)。丢失包含内容的文档承诺不会被忽略(请参阅include tag参考资料的结尾)。
答案 1 :(得分:0)
模板丢失和对象丢失之间存在差异,当上下文中缺少对象时,将调用TEMPLATE_STRING_IF_INVALID