我一直在尝试测试css文件是否加载。
我尝试使用以下代码,但它返回404
代码。 css文件在浏览器中加载正常。
client = Client()
response = client.get('/static/css/astyle.css')
self.assertEqual(200, response.status_code) # 200 != 404
如何使用selenium来测试css文件是否加载?
答案 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))