问题标签 [cucumber-jvm]

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 投票
3 回答
7344 浏览

java - Cucumber-JVM 蚂蚁任务

我如何告诉 ant 执行文件夹中的所有黄瓜测试(功能、实现)?

我坚持使用这个例子

0 投票
2 回答
624 浏览

maven - 如何修改 Cucumber-jvm

我正在通过 JUnit 和 maven 运行 cucumber-jvm。我可以进入源代码并对核心代码进行更改,但这些更改不会影响运行 cucumber-jvm 的其他项目。

如何更改核心并影响我机器上的其他项目?maven 只在 github 上运行 jars 吗?我是否必须创建一个新的 cucumber-jvm 项目并将该项目添加为依赖项而不是:

谢谢。

0 投票
2 回答
2381 浏览

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

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

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

    /li>

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

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

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

我会很感激任何意见。

编辑注释

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

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

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

0 投票
1 回答
1344 浏览

geb - 在 Geb 中设置请求头和用户代理

使用 Geb 时,是否可以在使用浏览器 API(而不是直接下载 API)时设置自定义请求标头和用户代理?

虽然使用 FirefoxDriver(请参阅此处)可以做到这一点,但我正在寻找一种使用 WebKitDriver 执行此操作的方法。

0 投票
1 回答
267 浏览

java - 有没有办法使用 Cucumber-JVM 开发 Java 1.5 应用程序?

Cucumber-JVM 依赖于 Java 1.6

我的客户端应用程序在 Java 1.5 上运行,目前无法更改

有谁知道使用 Cucumber-JVM 来锻炼我客户的应用程序的方法?

0 投票
2 回答
6272 浏览

java - 配置黄瓜guice

我正在尝试在我的步骤定义中使用 DI。我有一个模块,

并希望将此实例注入步骤定义的构造函数中。

我想我需要使用 cucumber-guice.properties 文件配置 GuiceFactory 但我真的不知道这是什么?目前我得到的错误是,

我还应该使用 Provider 进行构造函数注入吗?

0 投票
2 回答
18184 浏览

java - 从命令行在 Maven 中设置 cucumber-jvm 选项

我正在尝试为 Cucumber 设置“名称”选项,以便能够运行特定的功能或场景。

我进入了这个,

但它只是运行所有功能并且不会出错。

有任何想法吗?

0 投票
1 回答
13873 浏览

java - 在其他项目中重用 Cucumber-JVM 步骤定义

如何在其他项目中重用 Cucumber-JVM 步骤定义来测试一些典型的 Web 操作。关键是我已经创建了一些 java 项目,只是使用典型场景操作的步骤定义实现,例如:

而且我想在其他项目中重用这些定义(包括在类路径中),只是为了编写自己的简单场景。但是当我运行场景(作为 JUnit 测试)时,Cucumber 找不到步骤定义。当我尝试扩展 Step Definitions 类时,它给了我一个错误,我无法扩展 Step Definitions 类。那么,是否可以重用步骤定义,如果可以,那么如何重用?

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 投票
1 回答
1709 浏览

selenium - 无法在 Windows 7 上通过 TeamCity BuildAgent 执行 IEDriver 或 ChromeDriver

我的团队正在考虑使用 Selenium 2 进行 UI 测试。我们的 UI 开发由外部供应商完成(另一个主题),使用 RemoteDriver(服务器/客户端)需要更多的维护而不是我们的生产力。

我的测试项目是一个简单的 maven 项目,我尝试启动一个新的 IE(v8 - 64bit)/Firefox/和 Chrome 浏览器,看看它是否会成功导航到某个任意 url。它在我的机器上本地运行,在 TeamCity build-agent 用户配置文件上远程运行(转到源项目并运行 mvn test)。但是,当我尝试通过 TeamCity 控制台(Web 或通过 IntelliJ 上的远程运行)执行测试时,出现以下错误:

IE 驱动程序错误

Chrome 驱动程序错误

我的测试是使用 Cucumber-JVM 设置的,并且在我尝试执行 Selenium 驱动程序的步骤定义中。我肯定会按照 selenium 网站上概述的设置步骤进行操作,但我目前对为什么该项目不通过 TeamCity 执行感到迷茫。

如果这有助于故障排除,我很乐意发送我的测试项目。任何新的见解将不胜感激!