如何在python中编写黄瓜步骤定义

van*_*sha 7 python bdd cucumber

我是Cucumber框架的新手。我正在尝试使Cucumber与Python一起使用。我已经编写了功能文件,并且想知道如何在Python中编写步骤定义。

我在互联网上搜索,找到了Ruby语言的步骤定义,但没有找到Python的步骤定义。甚至可以用Python运行Cucumber吗?

Hen*_*wan 7

查看行为,行为驱动的开发库,Python风格。

行为驱动开发(BDD)是一种敏捷的软件开发技术,可鼓励软件项目中的开发人员,QA与非技术或业务参与者之间进行协作。我们有一页进一步描述了这种哲学。

行为使用以自然语言样式编写的测试,并由Python代码支持。

它不使用Cucumber,但是您可以重用.feature文件,因为它们使用相同的Gherkin语言。

示例行为的步骤定义:

from behave import *

@given('we have behave installed')
def step_impl(context):
    pass

@when('we implement a test')
def step_impl(context):
    assert True is not False

@then('behave will test it for us!')
def step_impl(context):
    assert context.failed is False
Run Code Online (Sandbox Code Playgroud)


Sqe*_*aky 4

Cucumber 目前支持 14 种语言,包括 JVM 上的 Python(也称为 Jython)。

我将从阅读Cucumber-JVM开始,它是 JVM 的 Cucumber 实现。要使用Java 6/7,这样您就可以使用Cucumber API。您需要使用 Java 注释编写 Python 方法,以告诉 Cucumber 哪些正则表达式与每个方法相关。

这听起来像是很多间接的,但它相当简单:

小黄瓜:

Scenario: Some cukes
  Given I have 48 cukes in my belly
Run Code Online (Sandbox Code Playgroud)

Python/Jython:

@Given('^I have (\d+) cukes in my belly')
def i_have_cukes_in_my_belly(self, cukes):
   print "Cukes: " + cukes
Run Code Online (Sandbox Code Playgroud)

这是从每个代码示例一角的黄瓜参考页面(断开的链接)复制的(不是小黄瓜,而是步骤定义),您可以选择您选择的语言。

该文档不完整,但如果完整,则很有用。它确实包含您的 Maven 配置条目(如果您正在使用它)以及基本使用所需的大部分信息。只要您熟悉从 Jython 调用Java,您在 Web 上其他地方找到的有关 Java 中的 Cucumber 的任何文档都应该适用于 Jython 。

  • 请注意,这些链接不再适用于 Cucumber 参考页面,并且更正后的链接不再讨论 python。 (2认同)