我想用pytest來測試我正在處理的Web應用程序。我開始小:404錯誤與pytest'manage.py外殼'和瀏覽器不
def test_loading_page(client):
response = client.get('/')
assert response.status_code == 200
assert b'Congratulations on your first Django' in response.content
根據pytest的輸出,這看起來是如預期運行:
platform win32 -- Python 3.6.1, pytest-3.0.7, py-1.4.33, pluggy-0.4.0
Django settings: test_project.settings (from ini file)
rootdir: C:\--\---\---\---\---\---, inifile: pytest.ini
plugins: django-3.1.2
collected 1 items
test_project.py F
================================== FAILURES ===================================
______________________________ test_loading_page _______________________________
client = <django.test.client.Client object at 0x000002440F0A17F0>
def test_loading_page(client):
response = client.get('/')
> assert response.status_code == 200
E assert 404 == 200
E + where 404 = <HttpResponseNotFound status_code=404, "text/html">.status_code
test_test_project.py:7: AssertionError
========================== 1 failed in 0.36 seconds ===========================
所以Django的開發服務器運行時,test_loading_page失敗,因爲的404 。如果使用我的瀏覽器去http://127.0.0.1:8000/顯示加載頁面。另外,如果我使用Python manage.py殼,下面的代碼運行正常:
from django.test import Client
client = Client()
response = client.get('/')
response.status_code == 200 #Returns True
在情況下,它是有用的,但pytest.ini文件包含:
[pytest]
DJANGO_SETTINGS_MODULE = flawlesslinguistics.settings
而且urls.py文件默認:
從django.conf.urls導入網址 從django.contrib中導入管理
urlpatterns = [
url(r'^admin/', admin.site.urls),
]
個版本我使用的是:
的Python 3.6.1
pytest-3.0.7
Django的3.1.2
很難確定哪些文章/文檔是指pyte st和哪些是django的內置測試框架,使用unittest。任何專家的幫助將不勝感激。
什麼是你的urls.py? – noes1s
已被加入到問題中noes1s – user3535074