如何在Python中编写cucumber步骤定义

问题描述 投票:0回答:2

我是 Cucumber 框架的新手。我正在尝试让 Cucumber 与 Python 一起工作。我已经编写了特征文件,想知道如何用Python编写步骤定义。

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

python cucumber bdd
2个回答
20
投票

查看 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

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

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。

© www.soinside.com 2019 - 2024. All rights reserved.