首页 > 解决方案 > django url 测试用例

问题描述

我是 Django 新手,我正在学习一个教程,在编写测试用例后一切都很好,它显示了一些错误,我按照教程进行操作,不知道为什么它不起作用。

运行 python manage.py 测试

输出:

Creating test database for alias 'default'...
System check identified no issues (0 silenced).
E.
======================================================================
ERROR: test_home_url_resolves_home_view (boards.tests.HomeTests)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "C:\Users\sradha\Development\myproject\myproject\boards\tests.py", line 13, in test_home_url_resolves_home_view
    view = resolve('/')
  File "C:\Users\sradha\Development\myproject\venv\lib\site-packages\django\urls\base.py", line 24, in resolve
    return get_resolver(urlconf).resolve(path)
  File "C:\Users\sradha\Development\myproject\venv\lib\site-packages\django\urls\resolvers.py", line 520, in resolve
    raise Resolver404({'tried': tried, 'path': new_path})
django.urls.exceptions.Resolver404: {'tried': [[<URLResolver <URLPattern list> (admin:admin) 'admin/'>], [<URLPattern 'homepage/' [name='home']>]], 'path': ''}

----------------------------------------------------------------------
Ran 2 tests in 0.036s

FAILED (errors=1)
Destroying test database for alias 'default'...

测试.py 文件

from django.urls import reverse
from django.urls import resolve
from django.test import TestCase
from .views import home

class HomeTests(TestCase):
    def test_home_view_status_code(self):
        url = reverse('home')
        response = self.client.get(url)
        self.assertEquals(response.status_code, 200)

    def test_home_url_resolves_home_view(self):
        view = resolve('/')
        self.assertEquals(view.func, home)

网址.py

from django.contrib import admin
from django.urls import path
from boards import views

urlpatterns = [
    path('admin/', admin.site.urls),
    path('homepage/', views.home, name='home'),
]

python 版本 3.6.2 django 版本 2.1.1

先感谢您。

标签: pythondjango

解决方案


您没有任何 URL,/仅在您的 urls.py上/admin/...和中。/homepage

所以你必须resolve('/')改为resolve('/homepage/')


推荐阅读