我想一起使用pytest
,pytest-django
和pytest-selenium
来测试我的Django应用程序功能。如果我使用python manage.py runserver
手动启动服务器,然后手动输入URL,它将正常工作。
来自live_server
的{{1}}固定装置应该在我可以使用的后台启动服务器进程,但是它不起作用。而不是通过测试,我得到“在此服务器上找不到所请求的资源。”
以下是我文件的相关部分:
pytest.ini
pytest-django
test_pages.py
[pytest]
DJANGO_SETTINGS_MODULE = chatsite_api.settings.test
addopts = --liveserver localhost:8080 --cov=. --cov-report=html --driver Firefox
还有chatsite_api.settings.test.py
import pytest
def test_homepage(selenium, live_server):
selenium.get(live_server.url)
assert "Django: the Web framework" in selenium.title
正如我所说,当我自己启动服务器时,测试运行良好,但是live_server固定装置似乎未达到预期的效果。我已经验证了from .dev import * # NOQA
DATABASES = {"default": {"ENGINE": "django.db.backends.sqlite3", "NAME": ":memory:"}}
DEBUG = True
是根据pytest.ini中的live_server.url
行设置的,但是据我所知。
答案 0 :(得分:1)
如果您正在默认索引页上进行测试(带有“安装成功!祝贺您!”的页面),则仅在使用DEBUG = True
运行开发服务器时显示。特别是,它不会出现在测试中。如果要使用该视图,则需要像其他视图一样在urls
模块中对其进行显式配置:
# urls.py
from django.urls import path
from django.views.debug import default_urlconf
urlpatterns = [
path('', default_urlconf, name='index'),
]