Невозможно запустить файл определения шага PyTest- bdd, поскольку он выбрасывает индекс из-за ошибки диапазона - PullRequest
1 голос
/ 16 февраля 2020

Файл функции указан ниже

Функция: Вход в Nopcommerce

Сценарий: вход на веб-сайт nopcommerce

Given nopcommerce page is displayed
When user enters username as admin@yourstore.com
When user enters password as admin
Then user is able to login to nocpmmerce website

определение шага Файл python, как показано ниже

from pytest_bdd import scenarios, given, when, then 
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import pytest

scenarios('../features/NopcommerceLogin.feature')

@pytest.fixture()
def browser():
    driver = webdriver.Safari()
    yield driver
    driver.quit()

@given("nopcommerce page is displayed")
def webpage(browser):
    browser.get("http://admin-demo.nopcommerce.com")

@when("user enters username as admin@yourstore.com")
def enter_uname(browser):
    browser.find_element_by_id("Email").send_keys("admin@yourstore.com")

@when("user enters password as admin")
def enter_pwd(browser):
    browser.find_element_by_id("Password").send_keys("admin")
    browser.find_element_by_xpath("/html/body/div[6]/div/div/div/div/div[2]/div[1]/div/form/div[3]/input").click()

@then("user is able to login to nocpmmerce website")
def loginsuccess(browser):
    assert browser.current_url == "https://admin-demo.nopcommerce.com/admin/"

при запуске файла step_def отображается следующее сообщение об ошибке

Traceback (последний последний вызов):

Файл "~ / tests / step_defs / test_NopcommerceLogin.py", строка 6, в сценарии ios ('../ features / NopcommerceLogin.feature')

Файл "~ / venv / lib / python3 .8 / site-packages / pytest_bdd / scene.py ", строка 343, в сценариях features_base_dir = get_features_base_dir (module)

Файл" ~ / venv / lib / python3 .8 / site-packages /pytest_bdd/scenario.py ", строка 295, в get_features_base_dir return get_from_ini ('bdd_features_base_dir', default_base_dir)

Файл" ~ / venv / lib / python3 .8 / site-packages / pytest_bdd / сценарий py ", строка 303, в get_from_ini config = CONFIG_STACK [-1]

IndexError: список индексов вне диапазона

1 Ответ

0 голосов
/ 25 февраля 2020

Думаю, проблема в том, что pytest не идентифицирует какой-либо исполняемый метод pytest в вашем файле определения шага. Пожалуйста, попробуйте изменить «scenar ios» на «сценарий» и добавьте метод идентификации pytest ниже того же

@scenario('../features/NopcommerceLogin.feature')
def test_login():
      pass

Этот подход всегда работает для меня и основан на Pytest- BDD do c.

...