Определения шагов в Python ведут себя не реализованными - PullRequest
0 голосов
/ 26 мая 2018

В настоящее время я пытаюсь выучить тесты на огурец в Python с поведением.Каждый раз, когда у меня появляется сообщение об ошибке, в котором говорится, что мои тесты не определены.Может ли кто-нибудь сказать мне, что я делаю неправильно?

мой test.feature

Feature: Python integration


  Scenario: Cucumber Tests
    Given I have a new "DVD" in my cart
      And I have a new "BOOK" in my cart
    When I click on "hello"
    Then I should see "success"

мой test.py

from behave import *


@given('I have a new {item} in my cart')
def step_impl(context, item):
    print("The item is: {}".format(item))


@when('I click on {link}')
def step_impl(context, link):
    print("I am clicking the link: {}".format(link))


@then('I should see {txt}')
def step_impl(context, txt):
    if txt not in ['success', 'error']:
        raise Exception("Unexpected text passed in.")

    print("Checking if I see the '{}' text".format(txt))
    print("PASS. I see the '{}' text".format(txt))

Когда я бегу, я получаюследующий вывод

Feature: Python integration # test.feature:2

  Scenario: Cucumber Tests              # test.feature:5
    Given I have a new "DVD" in my cart # None
    And I have a new "BOOK" in my cart  # None
    When I click on "hello"             # None
    Then I should see "success"         # None


Failing scenarios:
  test.feature:5  Cucumber Tests

0 features passed, 1 failed, 0 skipped
0 scenarios passed, 1 failed, 0 skipped
0 steps passed, 0 failed, 0 skipped, 4 undefined
Took 0m0.000s

1 Ответ

0 голосов
/ 10 декабря 2018

ошибка в кавычках "успеха":

Добавление:

...
- Then I should see "success"
...

Шаг реализации:

...
@then('I should see {txt}')
def step_impl(context, txt):
    if txt not in ['success', 'error']:
...

Должно быть: Feature:

...
- Then I should see success
...

Или измените реализацию шага на:

...
@then('I should see {txt}')
def step_impl(context, txt):
    if txt not in ['"success"', 'error']:
...

Ошибка в кавычках, используемых в "success".Реализация шага использует текст: «success» (включая кавычки) и присваивает его переменной txt, поэтому в операторе if txt НЕ равен success без кавычек.

...