程序员最近都爱上了这个网站  程序员们快来瞅瞅吧!  it98k网:it98k.com

本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长

+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

暂无数据

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

发布于2019-12-04 23:55     阅读(805)     评论(0)     点赞(20)     收藏(4)


我刚刚开始使用行为,使用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

和步骤文件,例如:

...
@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)
...

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

检测结果

其中一些步骤-例如:

  • 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

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


解决方案


在导入的文件中,then必须导入行为修饰符(例如):

from behave import then
from nose.tools import assert_equals

@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))

...


所属网站分类: 技术文章 > 问答

作者:黑洞官方问答小能手

链接:https://www.pythonheidong.com/blog/article/168262/75a29e0a167d5125455e/

来源:python黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

20 0
收藏该文
已收藏

评论内容:(最多支持255个字符)