Django - 测试 DRF Swagger 的 ping
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
。