Django测试加载css文件

时间:2014-04-10 14:31:13

标签: django selenium static

我一直在尝试测试css文件是否加载。

我尝试使用以下代码,但它返回404代码。 css文件在浏览器中加载正常。

client = Client()
response = client.get('/static/css/astyle.css')
self.assertEqual(200, response.status_code) # 200 != 404

如何使用selenium来测试css文件是否加载?

3 个答案:

答案 0 :(得分:3)

无论您在settings.py文件中指定了什么,测试服务器都会使用DEBUG = False。这意味着Django在运行测试时不会提供静态文件,这就是你看到404状态的原因。

我认为您可以测试静态文件是否存在于正确的目录中,而不是查找http状态代码。

from django.contrib.staticfiles.storage import staticfiles_storage #The file storage engine to use when collecting static files with the collectstatic management command.
from django.contrib.staticfiles import finders


class MyTest(unittest.TestCase):
    self.assertTrue(staticfiles_storage.exists(finders.find('css/astyle.css')))

当然,您需要另一个测试来查看您的服务器配置是否可以提供静态文件,但这不属于django开发的范围。

答案 1 :(得分:0)

我做的是,我检查了div.row left margin的值是-15px(引导程序)。有效。

答案 2 :(得分:0)

要对静态文件发出测试请求,您可以使用LiveServerTestCase。 虽然django测试客户端仍会返回404.对我来说有用的是使用urllib2代替:

import urllib2
from hamcrest import assert_that, is_

url = self.live_server_url + os.path.join(settings.STATIC_URL, "foo.css")
request = urllib2.Request(url)
response = urllib2.urlopen(request)
assert_that(response.getcode(), is_(200))