我是 Cucumber 框架的新手。我正在尝试让 Cucumber 与 Python 一起工作。我已经编写了特征文件,想知道如何用Python编写步骤定义。
我在互联网上搜索并找到了 Ruby 语言的步骤定义,但没有找到 Python 的步骤定义。甚至可以用 Python 运行 Cucumber 吗?
查看 behave,行为驱动开发库,Python 风格。
行为驱动开发(BDD)是一种敏捷软件开发 鼓励开发人员、QA 和 软件项目中的非技术或业务参与者。我们有 进一步描述这一理念的页面。
behave 使用以自然语言风格编写的测试,并由 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
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参考页面(断开的链接)复制的(不是小黄瓜,而是步骤定义),您可以选择您选择的语言。
该文档不完整,但如果完整则很有用。它确实包含 您的 Maven 配置条目(如果您正在使用它)以及基本使用所需的大部分信息。只要您熟悉 从 Jython 调用 Java,您在网络上其他地方找到的有关 Java 中的 Cucumber 的任何文档都应该适用于 Jython。