我试图为我的视图功能编写测试,但遇到了问题。
我想检查一个特定的函数是否返回某种类型的json,所以我
编写了以下代码:
client = Client()
response = client.get('/func/1/True')
self.assertRedirects(response, "login/?next=/func/1/True", 302)
当视图函数为:
时@login_required
def func(request, objId, flag):
return json.dumps(something)
但是当我运行测试时,我从断言中得到了失败:
ValueError: The file 'myApp/css/bootstrap.css' could not be found with
<whitenoise.django.GzipManifestStaticFilesStorage object at 0x0000000004C7A898>.
但是当我在没有测试的情况下运行应用程序时,它可以找到并找到该文件。
注意:我从eclipse运行测试(如果它有所不同......)
任何想法为什么会发生?
答案 0 :(得分:3)
当我为我的测试禁用了whitnoise时,它对我有用。我通过在设置中禁用STACTFILES_STORAGE来完成此操作。您可以使用@override_settings装饰器为您的测试执行此操作:
from django.test import TestCase, override_settings
from django.test import Client
class ClientTest(TestCase):
def setUp(self):
self.c = Client()
@override_settings(STATICFILES_STORAGE = None) # added decorator
def test_client_works(self):
resp = self.c.get('/some/page/')
self.assertTrue(resp.status_code is 200)
def tearDown(self):
pass