Python 使用Django测试工作获取live_服务器设备
我想一起使用Python 使用Django测试工作获取live_服务器设备,python,django,selenium-webdriver,pytest,pytest-django,Python,Django,Selenium Webdriver,Pytest,Pytest Django,我想一起使用pytest、pytest-django和pytest-selenium来测试我的django应用程序功能。如果我使用python manage.py runserver手动启动服务器,并手动输入URL,则可以正常工作 pytest-django中的live_服务器fixture应该在后台启动一个服务器进程,我可以使用它,但它不起作用。我得到的不是通过测试,而是“在此服务器上找不到请求的资源” 以下是我的文件的相关部分: pytest.ini [pytest] DJANGO_SETT
pytest
、pytest-django
和pytest-selenium
来测试我的django应用程序功能。如果我使用python manage.py runserver
手动启动服务器,并手动输入URL,则可以正常工作
pytest-django
中的live_服务器
fixture应该在后台启动一个服务器进程,我可以使用它,但它不起作用。我得到的不是通过测试,而是“在此服务器上找不到请求的资源”
以下是我的文件的相关部分:
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_服务器设备似乎没有达到预期的效果。我已经验证了
live_server.url
是根据pytest.ini中的addopts
行设置的,但这是我所能做到的。如果您是针对默认索引页(带有“安装成功!恭喜!”问候语的页面)进行测试,它仅在使用DEBUG=True
运行开发服务器时显示。特别是,它不会出现在测试中。如果要使用该视图,需要像其他视图一样,在url
模块中显式配置它:
# urls.py
from django.urls import path
from django.views.debug import default_urlconf
urlpatterns = [
path('', default_urlconf, name='index'),
]
您正在测试默认登录页吗?它仅显示用于演示目的,不会在live server启动时显示。你能显示你的
url.py
模块吗?如果你需要默认页面,你可以通过django.views.debug import default\u urlconf中的将其设置为索引页面;urlpatterns=[path(“”,默认值_urlconf,name='index')]
Duh。非常感谢。想把这个问题写进一个答案,这样我就可以相信你解决了这个问题?