相关疑难解决方法(0)

行为:如何从另一个文件导入步骤?

我刚刚开始使用behave,一个使用Gherkin 语法的Pythonic BDD 框架。行为需要一个功能,例如:

Scenario: Calling the metadata API
   Given A matching server
   When I call metadata
   Then metadata response is JSON
   And response status code is 200
Run Code Online (Sandbox Code Playgroud)

还有一个步骤文件,例如:

...
@then('response status code is {expected_status_code}')
def step_impl(context, expected_status_code):
    assert_equals(context.response.status_code, int(expected_status_code))

@then('metadata response is JSON')
def step_impl(context):
    json.loads(context.metadata_response.data)
...
Run Code Online (Sandbox Code Playgroud)

并将它们组合成一个漂亮的测试报告:

检测结果

其中一些步骤 - 例如:

  • metadata response is JSON
  • response status code is {expected_status_code}

在我的许多项目中使用,我想将它们分组到一个通用步骤文件中,我可以导入和重用该文件。

我尝试将有用的步骤提取到单独的文件中并将其导入,但收到以下错误:

@then('response status code is {expected_status_code}')
NameError: name 'then' is not defined
Run Code Online (Sandbox Code Playgroud)

如何创建通用步骤文件并导入它?

python bdd python-behave

6
推荐指数
2
解决办法
4130
查看次数

标签 统计

bdd ×1

python ×1

python-behave ×1