Чтение таблиц данных из файла объектов - Pytest-bdd - PullRequest
0 голосов
/ 12 июня 2018

Я новичок в платформе pytest-bdd.

Ниже приведен пример файла возможностей Содержимое:

Scenario Outline: Google multiple search request

  Given I want to search in Google
    When I search for '<search_request>'
    Then I should see link to '<search_result>'

  Examples:
  | search_request | search_result |
  | Pytest BDD | Python BDD - Behaviour driven development framework |
  |  Cucumber | Cucumber |

Образец файла python, созданного из pytest-bdd: # coding= utf-8 "" "example.feature функциональные тесты." ""

from pytest_bdd import (
    given,
    scenario,
    then,
    when,
) 

 @scenario('example.feature', 'Google multiple search request')
def test_google_multiple_search_request():
    """Google multiple search request."""


@given('I want to search in Google')
def i_want_to_search_in_google():
    """I want to search in Google."""


@when('I search for '<search_request>'')
def i_search_for_search_request():
    """I search for '<search_request>'."""


@then('I should see link to '<search_result>'

Examples:
| search_request | search_result |
| Pytest BDD | Python BDD - Behaviour driven development framework |
|  Cucumber | Cucumber |
|  Cucumber2 | Cucumber2 |')
def i_should_see_link_to_search_resultexamples_search_request__search_result__pytest_bdd__python_bdd__behaviour_driven_development_framework___cucumber__cucumber___cucumber2__cucumber2_():
    """I should see link to '<search_result>'

Examples:
| search_request | search_result |
| Pytest BDD | Python BDD - Behaviour driven development framework |
|  Cucumber | Cucumber |
|  Cucumber2 | Cucumber2 |."""

Есть ли способ в pytest-bdd, где он распознает набор данных примера, предоставленный в файле возможностей, и преобразует его в действительный pythonфайл, как он генерирует код скелета
Или нам нужно кодировать его вручную, чтобы принять входные данные в файле функций

Любая помощь очень ценится.

С уважением, Санджай BS

1 Ответ

0 голосов
/ 22 февраля 2019

Похоже, что-то пошло не так с генерацией кода.Не должно быть следующего:

@ then ('я должен увидеть ссылку на' '

Примеры: | search_request | search_result | | Pytest BDD | Python BDD - разработка на основе поведенияframework | | Cucumber | Cucumber | | Cucumber2 | Cucumber2 | ')

Сначала давайте исправим файл объектов (эти одинарные кавычки не требуются):

Краткое описание сценария: Google запрос на множественный поиск

Учитывая Я хочу искать в Google

Когда Я ищу

Тогда Я должен увидеть ссылку на

Примеры:

|search_request |search_result |

|Pytest BDD |Python BDD - среда разработки, управляемая поведением |

|Огурец |Cucumber |

Вот как вы передаете переменную из таблицы-примера в функцию step:

@when('I search for <search_request>')
def i_search_for_search_request(search_request):
    """I search for <search_request>."""
    print(search_request)

Надеюсь, это поможет!

...