gpt4 book ai didi

django - 在 Django TestCases 中呈现模板时缺少静态文件 list 条目

转载 作者:行者123 更新时间:2023-12-05 07:35:43 25 4
gpt4 key购买 nike

我在运行 TestCase 时遇到了问题,我正在渲染页面模板以测试生成的 HTML 片段。

这是我正在运行的测试类型的示例:

测试.py

from django.test import TestCase

class NavTestCase(TestCase):
def test_standard_user_nav(self):
self.client.login(username='username', password='password')
user = auth.get_user(self.client)
response = self.client.get('/')
content = response.render().content
# Run logic to check pieces of the nav in the rendered HTML

requirements.txt

django-material==1.0.0
django-nose==1.4.5
nose==1.3.7

settings.py

STATICFILES_STORAGE = 'whitenoise.storage.CompressedManifestStaticFilesStorage'

问题出在我添加到我的 base.html 文件中的代码,以支持使用 django-material 进行最近的网站重新设计。下面,<head> 中的三行是直接从 django-material 文档中复制过来的。

基础.html

{% load static %}
<html lang="en-us">
<head>
{% include 'material/includes/material_css.html' %}
<script src="{% static '[material/js/jquery.js' %}"></script>
{% include 'material/includes/material_js.html' %}
</head>
<body>...</body>
</html>

作为引用,以下是这些文件的链接:

但是,这些行破坏了我的测试。我收到这两个错误:

  • WARNING Exception raised while rendering {% include %} ... ValueError: Missing staticfiles manifest entry for 'material/fonts/material-design-icons/material-icons.css' ==> 这是 material_css.html 中的第一次调用。
  • ValueError: Missing staticfiles manifest entry for 'material/js/jquery.js' ==> 这是 django-material 文档特定的 base.html 中的第二行。

我对任何其他静态文件都没有这个问题,无论是我创建的文件(我在上面粘贴的精简 base.html 中遗漏的条目)还是 django-material 提供的其他文件. 实际上,仔细检查后,当我删除这三行时,它会在随后调用“static”时中断(为了简单起见,我再次从这个示例中省略了它)。

现在,按照 this StackOverflow question 的建议,当我在本地运行 collectstatic 时,它确实解决了这个问题。但是,当我部署代码并远程运行测试时,我不知道如何让 collectstatic 在那里运行。我尝试将测试的基类更改为 StaticLiveServerTestCase ,但这并没有什么不同。我还从 Nose documentation 看到我可以在我的测试类中创建一个 setUp() 例程,但鉴于我在我的代码中的许多测试类中运行这样的测试,我想避免多次运行 collectstatic

有什么想法吗?

谢谢!

最佳答案

显然这是一个特性而不是错误。在运行测试之前,我必须更改部署以运行 collectstatic 的方式——这需要更改自定义的 .yml 配置文件以适应我的持续集成环境——与上述任何内容完全无关。哦。

关于django - 在 Django TestCases 中呈现模板时缺少静态文件 list 条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49369777/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com