从特征文件中读取数据表 - Pytest-bdd

时间:2018-06-12 13:14:20

标签: python bdd pytest

我是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 |

从pytest-bdd生成的示例python文件:     #coding = utf-8     msgstr“”“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文件,就像生成框架代码一样 要么 我们需要手动编码以接受要素文件中的输入数据

任何帮助都非常感激。

此致 Sanjay B S

1 个答案:

答案 0 :(得分:0)

代码生成似乎出了点问题。以下内容不应该存在:

  

@then('我应该看到指向''

的链接      

示例:   | search_request | search_result |   | Pytest BDD | Python BDD-行为驱动的开发框架|   |黄瓜黄瓜   |黄瓜2 |黄瓜2 |')

首先让我们修复功能文件(不需要单引号):

方案概述:Google多个搜索请求

给出我要在Google中搜索

何时我搜索

然后,我应该看到指向

的链接

示例:

| search_request | search_result |

| Pytest BDD | Python BDD-行为驱动的开发框架|

|黄瓜黄瓜|

这是将变量从示例表传递给step函数的方法:

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

希望有帮助!