通过Django测试工作,获得Live_server固定装置



我想一起使用 pytestpytest-djangopytest-selenium一起测试我的django应用程序功能。如果我使用python manage.py runserver手动启动服务器,然后手动输入URL,则可以正常运行。

pytest-djangolive_server固定装置应该在我可以使用的后台启动服务器进程,但它不起作用。我没有通过通过测试,而是"在此服务器上找不到请求的资源。"

这是我文件的相关部分:

pytest.ini

[pytest]
DJANGO_SETTINGS_MODULE = chatsite_api.settings.test
addopts = --liveserver localhost:8080  --cov=. --cov-report=html --driver Firefox

test_pages.py

import pytest
def test_homepage(selenium, live_server):
    selenium.get(live_server.url)
    assert "Django: the Web framework" in selenium.title

和chatsite_api.settings.test.py

from .dev import *  # NOQA
DATABASES = {"default": {"ENGINE": "django.db.backends.sqlite3", "NAME": ":memory:"}}
DEBUG = True

正如我所说的,测试自己在我自己启动服务器时运行良好,但是Live_server固定装置似乎并没有做应该做的事情。我已经证实了 live_server.url是根据pytest.ini中的 addopts行设置的,但这是我得到的。

如果您要针对默认索引页面进行测试(安装成功工作!恭喜!恭喜!(,则仅在使用DEBUG = True运行开发服务器时才能显示出来。特别是,它不会存在于测试中。如果要使用视图,则需要像其他视图一样在urls模块中明确配置它:

# urls.py
from django.urls import path
from django.views.debug import default_urlconf

urlpatterns = [
    path('', default_urlconf, name='index'),
]

最新更新