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

时间:2015-07-09 12:38:50

标签: python cucumber bdd

我是Cucumber框架的新手。我正在尝试让Cucumber使用Python。我编写了功能文件,想知道如何用Python编写步骤定义。

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

2 个答案:

答案 0 :(得分:3)

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

的Python / Jython的:

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

这是从每个代码示例角落的cucumber reference page复制的(不是小黄瓜,而是步骤定义),您可以选择您选择的语言。

文档不完整,但如果文档完整,则很有用。它包括entry for your maven config如果您正在使用它以及基本使用所需的大部分信息。只要您熟悉calling Java from Jython,您在网上其他地方找到的用于黄瓜的文档就可以与Jython一起使用。

答案 1 :(得分:3)

签出 behave ,行为驱动的开发库,Python风格。

  

行为驱动的开发(或BDD)是一种敏捷的软件开发   鼓励开发人员,质量检查人员和   软件项目中的非技术或业务参与者。我们有   进一步描述这种哲学的页面。

     

使用自然语言编写的测试,并由以下人员支持   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