Python 单元测试时未找到Django反向
我正在为Django应用程序编写单元测试。该应用程序按预期工作。但是,其中一个新测试失败,因为系统无法找到视图名称的反向匹配。我错过了什么 django.url.exceptions.NoReverseMatch:与 '视频上传器。未找到视频列表。'视频上传器。列出视频' 不是有效的视图函数或模式名称 app/tests.pyPython 单元测试时未找到Django反向,python,django,django-views,Python,Django,Django Views,我正在为Django应用程序编写单元测试。该应用程序按预期工作。但是,其中一个新测试失败,因为系统无法找到视图名称的反向匹配。我错过了什么 django.url.exceptions.NoReverseMatch:与 '视频上传器。未找到视频列表。'视频上传器。列出视频' 不是有效的视图函数或模式名称 app/tests.py from django.test import TestCase from .models import Video from .views import * from
from django.test import TestCase
from .models import Video
from .views import *
from django.db import models
from django.utils import timezone
from django.urls import reverse
class VideoTest(TestCase):
def create_video(self, name="Test Video", creation_date=timezone.now, videofile="/video/"):
return Video.objects.create(name=name, videofile=videofile)
def test_video_creation(self):
video = self.create_video()
self.assertTrue(isinstance(video, Video))
self.assertEqual(video.__str__(), video.name + ": " + str(video.videofile))
def test_videos_list_view(self):
video = self.create_video()
url = reverse("video_uploader.list_videos")
response = self.client.get(url)
self.assertEqual(response.status_code, 200)
self.assertIn(video.name, response.content)
from django.urls import path
from . import views
app_name = 'video_uploader'
urlpatterns = [
path('upload', views.upload_video, name='upload_video'),
path('', views.list_videos, name='list_videos'),
]
app/url.py
from django.test import TestCase
from .models import Video
from .views import *
from django.db import models
from django.utils import timezone
from django.urls import reverse
class VideoTest(TestCase):
def create_video(self, name="Test Video", creation_date=timezone.now, videofile="/video/"):
return Video.objects.create(name=name, videofile=videofile)
def test_video_creation(self):
video = self.create_video()
self.assertTrue(isinstance(video, Video))
self.assertEqual(video.__str__(), video.name + ": " + str(video.videofile))
def test_videos_list_view(self):
video = self.create_video()
url = reverse("video_uploader.list_videos")
response = self.client.get(url)
self.assertEqual(response.status_code, 200)
self.assertIn(video.name, response.content)
from django.urls import path
from . import views
app_name = 'video_uploader'
urlpatterns = [
path('upload', views.upload_video, name='upload_video'),
path('', views.list_videos, name='list_videos'),
]
应用程序名称和url名称之间应该是
:
而不是
。尝试:
url = reverse("video_uploader:list_videos")
谢谢我想就是这样。添加分号后,此错误消失。然而,一个新的出现了。也就是说,它无法解析
视频
URL,该URL位于项目的URL.py
,指向我正在测试的应用程序。是否有一种特殊的方法需要包含主文件以使测试通过?您能用项目的“url.py”和错误消息更新问题吗?我能够克服错误。谢谢你的帮助!