Django - 测试 DRF Swagger 的 ping

8 浏览
0 Comments

Django - 测试 DRF Swagger 的 ping

我在urls.py文件中有这些URL。由于它们与问题无关,所以我没有在代码中添加很多URL模式。

SWAGGER_URLS = [url(r'^swagger(?P\.json|\.yaml)$',
                    schema_view.without_ui(cache_timeout=0), name='schema-json'),
                url(r'^swagger/$', schema_view.with_ui('swagger',
                                                       cache_timeout=0), name='swagger')]
urlpatterns = USER_URLS + USER_INTEREST_URLS + FOLLOW_USER_URLS + \
              GOAL_URLS + GOAL_CATEGORY_URLS + JOIN_GOAL_URLS + \
              POST_URLS + EXPLORE_URLS + HOME_FEED_URLS + SEARCH_URLS + FOLLOW_JOIN_GOAL_URLS
if settings.DEBUG:
    urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
    urlpatterns += ADMIN_URLS
    urlpatterns += SWAGGER_URLS

然后我有这个测试SwaggerTest.py

from django.test import TestCase
from django.urls import reverse
from rest_framework import status
class SwaggerTest(TestCase):
    @override_settings(DEBUG=True)
    def test_successful_swagger_pint(self):
        response = self.client.get(reverse('swagger'))
        self.assertEqual(response.status_code, status.HTTP_200_OK)

当我运行这个测试时,我得到了异常django.urls.exceptions.NoReverseMatch: Reverse for 'swagger' not found. 'swagger' is not a valid view function or pattern name.。但是当我使用浏览器访问localhost/swagger/时,它可以正常工作。我正在使用django-rest-swagger==2.2.0。

我通过运行以下命令来运行测试:python manage.py test

0