使用Django测试工作获取live_server装置

时间:2019-06-29 18:10:08

标签: python django selenium-webdriver pytest pytest-django

我想一起使用pytestpytest-djangopytest-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行设置的,但是据我所知。

1 个答案:

答案 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'),
]