Pytest- bdd дает ошибку имени для переменных, определенных в схеме сценария - PullRequest
0 голосов
/ 28 мая 2020

Я пытаюсь запустить тест с ptest- bdd. Я использовал схему сценария, но переменная username возвращает ошибку имени, говорящую, что имя пользователя не определено. Я был бы очень признателен за вторую пару взглядов на мой код.

Вот файл функции:

@login

Feature: Valid Login
    As a employee,
    I want to login to my account
    So I can access the application

    Background: 
        Given the login page is displayed

    Scenario Outline: Manager enters correct login credentials and Ok button
        When the user enters their <username> and <password> correctly
        And the user clicks OK
        Then the page redirects to the manager home page

        Examples: Manager
            |   username            |   password                |
            | fake_name             | 1234                      |

А вот код test_login_steps.py:

from pytest_bdd import scenarios, scenario, given, when, then, parsers
from pages.signin import QaSigninPage
from pages.managerHomepage import QaManagerHomepage
import pytest


CONVERTERS = {
    'username': str,
    'password': str,
}

scenarios('../features/login.feature', example_converters=CONVERTERS)

# Create Page Objects
@pytest.fixture(scope='session')
def pages(test_manager):
    pages={"signin_PAGE": QaSigninPage(test_manager.browser),
            "manager_home_PAGE": QaManagerHomepage(test_manager.browser)}
    return pages


# Given Steps
@given('the login page is displayed')
def login_visit(pages):
    pages["signin_PAGE"].load()

@when('the user enters their <username> and <password> correctly')
def enter_credentials(pages):
    pages["signin_PAGE"].enter_username(username)
    pages["signin_PAGE"].enter_password(password)

Ответы [ 2 ]

0 голосов
/ 19 июня 2020

Когда вы используете КОНВЕРТЕРЫ, используйте сценарий вместо сценария ios, который позволяет вам передавать примеры в качестве параметров

0 голосов
/ 28 мая 2020

Забыл передать переменные в функцию ... Разобрался.

...