Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 单元测试时未找到Django反向_Python_Django_Django Views - Fatal编程技术网

Python 单元测试时未找到Django反向

Python 单元测试时未找到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

我正在为Django应用程序编写单元测试。该应用程序按预期工作。但是,其中一个新测试失败,因为系统无法找到视图名称的反向匹配。我错过了什么

django.url.exceptions.NoReverseMatch:与 '视频上传器。未找到视频列表。'视频上传器。列出视频' 不是有效的视图函数或模式名称

app/tests.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'),
]
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”和错误消息更新问题吗?我能够克服错误。谢谢你的帮助!