我是Cucumber框架的新手。我正在尝试让Cucumber使用Python。我编写了功能文件,想知道如何用Python编写步骤定义。
我通过互联网搜索并找到了Ruby语言的步骤定义,但没有找到Python的步骤定义。甚至可以用Python运行Cucumber吗?
答案 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