问题标签 [cucumber-junit]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2581 浏览

cucumber - Gradle 不接 Cucumber-jvm

我正在尝试从 Gradle 运行 Cucumber-jvm。但是,无论我做什么,我都无法让这些功能真正运行。在运行其他 JUnit 测试时,它们总是被跳过。我的功能在src/test/resources,我有一个 JUnit 测试,src/test/java@RunWith(Cucumber.class)指定了@Feature(Myfeature.feature)属性。这是我的 Gradle 脚本:

如果有人知道如何解决此问题,将不胜感激。Cucumber-jvm 文档不存在。

0 投票
7 回答
78138 浏览

java - 如何使用 cucumber-junit 设置 Cucumber 功能的路径?

我尝试使用 Java 和 Maven 构建我的第一个可执行规范。我用这个结构创建了一个简单的项目:

在junit测试MyFeatureTest.java中我有这个:

现在https://github.com/cucumber/cucumber-jvm/wiki/IDE-support说我应该添加以下行:

我试图将其修改为

但注释@Cucumber.Options根本不可用。我pom.xml有这个依赖:

我错过了什么吗?

更新我遗漏了一些东西:黄瓜功能文件必须在子目录src/test/resources/mypackage/中。否则它不会被junit测试拾取。

当我将它们放在同一个目录中时,我可以运行我的功能测试src/main/test/,所以这对我来说不是一个障碍。但我想了解整个设置。

0 投票
1 回答
3452 浏览

junit - 在 Cucumber-JUnit 中,有没有办法控制报告功能的顺序?

我正在运行一个基本的 Cucumber-Jvm 测试,它具有两个称为“基本数学”和“高级数学”的功能(分别在文件中basic_math.featureadvanced_math.feature)。

但是,当生成 HTML 报告时,“高级数学”会显示在“基础数学”之前,而我希望“基础数学”出现“高级数学”之前。这不是微不足道的,因为如果我可以更有逻辑地组织输出,那么我们的业务分析师和 QA 部门将更容易访问这些报告,并且我将能够获得更多的牵引力。

我知道我可以尝试使用 Maven 插件进行某种 XSLT 后处理,但我正在寻找某种方式来使用注释在代码中定义它。有没有这样的方法?Cucumber.@Options.features实际上定义了.feature文件位置,并且Cucumber.@Options.name用于确定运行哪些功能的 rexexp。

0 投票
1 回答
524 浏览

cucumber - 使用 Frank/Cucumber 进行 XCode 自动化测试

我正在尝试探索可能对我的 XCode 应用程序进行自动化测试的不同方法,并且遇到了 Frank/Cucumber,但我真的很困惑它是如何工作的。Cucumber 在实际开始测试时采取了哪些步骤?你有你的功能文件(* .feature 文件),它似乎有利于某种英文写作风格,然后你有你的定义,这些脚本是我假设与每个功能相关联的脚本?我以前从未做过 ruby​​ 编程,所以这可能是我最困惑的根源。

谁能解释一下它是如何工作的?它在一周冲刺后可能会发生变化的敏捷环境中有用吗?我的想法是,如果您拥有所有这些功能和所有这些脚本,那么很快维护起来可能会令人头疼,但这只是我长期考虑的问题。

任何帮助和想法将不胜感激。谢谢!

0 投票
2 回答
2381 浏览

java - 我如何处理使用 Cucumber JVM/JUnit 加载数据库

我想使用带有黄瓜 jvm 的功能文件来保存测试数据。

  • 我正在测试一种在处理之前使用休眠加载对象的方法。

    /li>

由于我必须指定要加载的 dealId,我该如何处理加载?

我的理解是我需要“模拟”连接和模拟连接产生的对象。

我分别查看了 Jmock、mockito 和 dbunit,但我不明白该怎么做。

我会很感激任何意见。

编辑注释

我添加了更多代码,我们正在从数据库中检索一个对象。接下来,我们遍历与交易相关的对象列表(多对一),并将每笔贷款的金额添加到交易金额中。最后,我们在返回交易之前设置交易的总金额。

那么,考虑到我想从功能文件中提供测试信息,我该如何为此方法编写 Junit 测试呢?

在“真实”场景中,这是可行的,我们在应用程序中加载交易并添加每笔贷款的贷款金额,并将其设置到交易中,然后再返回。但是考虑到我们必须从该方法中的数据库加载,我不明白如何为此测试编写 JUnit。

0 投票
3 回答
5646 浏览

java - 如何在 Cucumber 中组织规范定义?

我们正在考虑在我们的项目中使用Cucumber进行验收测试。

当我们scenario在 Cucumber中编写 a 时feature,我们编写了Given,WhenThen语句的列表。

当我们使用cucumber-jvm项目时GivenWhenThen语句与(JUnit)类中的 Java 方法相关。

我想知道项目结构中与Given//相关的代码最好的组织是什么。我主要关心的是维护一个大项目的黄瓜测试,其中场景的数量非常重要,尤其是关于功能之间共享的项目。WhenThen

我可以看到至少两种主要方法:

  1. 每个特性都与它自己的 JUnit 类相关。所以如果我有一个foo/bar/baz.feature黄瓜文件,我会找到相关的foo.bar.BazJUnit 类,它有足够@Given@When@Then注释的方法。

  2. @Given将,@When和方法分离@Then到“主题”类和包中。例如,如果在我的黄瓜场景中我有一个语句Given user "foo" is logged,那么带@Given("^user \"([^\"]*)\" is logged$")注释的方法将位于foo.user.User类方法中,但可能@When稍后在同一黄瓜场景中使用的方法将位于不同的 Java 类和包中(比如说foo.car.RentCar) .

对我来说,第一种方法似乎很好,因为我可以轻松地处理我的黄瓜特性和我的 Java 代码之间的关系。但缺点是我可以有很多冗余或代码重复。此外,可能很难找到可能的现有@Given方法,以避免重新创建它(IDE​​ 可以提供帮助,但这里我们使用的是 Eclipse,它似乎没有给出现有Given语句的列表?)。

当您在多个黄瓜功能之间共享条件时,另一种方法似乎更好Given,因此我想避免代码重复。这里的缺点是很难在@GivenJava 方法和Givencucumber 语句之间建立联系(也许,IDE 可以提供帮助?)。

我对黄瓜很陌生,所以也许我的问题不是一个好问题,随着时间和经验,结构将是不言而喻的,但我想得到关于它的使用的良好反馈......

谢谢。

0 投票
5 回答
39102 浏览

cucumber - 在cucumber中指定特征文件位置

我创建了一些黄瓜测试步骤和一个小黄瓜测试用例,我使用 JUnit 运行,如下所示:

Cucumber 功能文件现在自动从类路径位置加载,src/main/resources/<package-name>/*.feature

我想知道如何告诉黄瓜我的功能文件的位置,因为我需要它从类路径之外的位置(例如数据//)加载它们。

0 投票
10 回答
50348 浏览

cucumber - cucumber jvm CucumberException:在 [] 处未找到任何功能

在我的黄瓜 -jvm、Maven、junit 设置中,我的 testRunner 文件为

我在上述目录中有我的功能文件。

如果我运行它,我会得到以下异常:

如果我删除 testrunner 中的“功能”选项,它会尝试在与我的 testrunner.java 相同的目录中查找功能文件

如果我把功能文件放在那里,它就可以工作。

我的问题是为什么没有从我以前的位置提取我的功能文件,我认为这是黄瓜的默认文件结构 - maven 设置。

我如何让它从那里拿起?帮助表示赞赏。

0 投票
4 回答
11550 浏览

regex - Cucumber JVM:如何使用双精度值作为输入值?

对于我正在尝试编写的行为测试,我需要浮点输入。如何设置我的小黄瓜字符串来查找这些值?

0 投票
3 回答
21304 浏览

cucumber - 失败后继续运行黄瓜步骤

即使其中一个步骤失败,是否有任何方法可以继续执行 Cucumber Steps。在我当前的设置中,当一个步骤失败时,黄瓜会跳过剩余的步骤..我想知道是否有某种方法可以调整黄瓜跑步者的设置..

我可以注释掉失败的步骤,但是当你不知道哪个步骤会失败时它不实用......如果我可以继续剩下的步骤,我会一次知道完整的失败测试集......而不是循环往复...

环境:Cucumber JVM、R、Java、Ibatis、Spring Framework、Maven