问题标签 [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 回答
5949 浏览

ruby - 如何在黄瓜测试中的场景大纲示例中获取多行字符串才能工作?

我想在场景大纲的示例部分使用多行字符串。怎么做 ?

例如

它看起来不干净也不行

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 投票
2 回答
4689 浏览

selenium - 如何在 cucumber-jvm 的另一个功能中调用一个功能?

我有一个功能文件

所以上面的运行一切正常,并断言它确实回到了主页并且存在退出链接。

现在我有了另一个功能文件。

在运行"When I go to my account page"步骤之前,用户应该"Create Profile".

所以我所做的是我附加了

之前When I go to my account page

但我看到我复制了“创建配置文件”功能/场景中的相同代码。

如何在“转到我的帐户页面”场景中运行整个“创建配置文件”功能/场景?

我将 cucumber-jvm 与 Selenium 和 JUnit 一起使用。

0 投票
2 回答
1850 浏览

cucumber - 使用 Cucumber/Webdriver 的验收测试永远不会完成

我们使用 Gherkin、Cucumber-jvm 和 Webdriver 对标准 Java/Spring webapp 运行验收测试。问题是,当使用 Maven 作业运行测试时,测试完全成功,但作业没有完成。只有在关闭 Firefox 窗口时才能完成作业。

我们有一个在每个功能后显式关闭浏览器的解决方法,但由于时间滞后,这很快就会变得不可持续。

技术栈如下:

黄瓜-JVM 1.0.4

硒 2.12.0

火狐8.0

该应用程序在 Windows 7 机器上的 JBoss EAP 5.1 中运行。

当我们使用 Cucumber 的 JRuby 版本时,上述 selenium/firefox 组合不会出现这种行为,尽管当我们使用更高版本的任何一种时都会出现这种情况。

以前有没有人见过这种行为,有没有人有任何建议或解决方法?

提前致谢

0 投票
1 回答
5676 浏览

java - 没有为 Cucumber runner 注入 Spring 依赖项

我有使用 SpringJUnit4ClassRunner 的现有测试用例,它使用 @Resource 注释来标记变量以进行注入。

@Resource 用作将来可能使用的另一个 DI 框架。(@Resource 与 @Autowired

现在我已经开始使用 Cucumber runner 编写 BDD 测试用例。然而,DI 似乎没有发生。(@Autowired 有效,但@Resource 无效)有人知道为什么不吗?

0 投票
1 回答
1173 浏览

grails - 尝试使用 cucumber-jvm 运行 geb 测试时出错

我正在尝试在 IntelliJ 的 Grails 项目中运行一些 geb 测试,但是遇到了麻烦,经过 2 天的网络搜索和尝试不同的事情后仍然卡住了。之前,我们确实有一些 Groovy 测试运行良好,但到目前为止,geb 没有运气。我们正在使用黄瓜-jvm。

目前我收到以下错误:执行脚本TestApp时出错:groovy.lang.MissingMethodException:没有方法签名:GebConfig.environments()适用于参数类型:(GebConfig$_run_closure2)值:[GebConfig$_run_closure2@4ad3727e]

我的 GebConfig.groovy 文件在测试/功能中,包含:

我在测试/功能中也有 .feature 文件。步骤定义在测试/功能/步骤中,包含:

在 test/functional/setup 中还有一个 shared_driver.groovy 类,它是为直接的 Groovy 测试而创建的,我不确定这是否仍然需要。

运行配置命令是:test-app --stacktrace,带有 VM 选项:-Dgeb.env=chrome

任何帮助表示赞赏,谢谢!

0 投票
1 回答
2595 浏览

html - 带有 html 格式化程序的 cucumber-jvm 生成空白页

cucumber-jvm 的 HTML 格式化程序昨天为我工作。今天,当我运行测试时,我在生成的 index.html 中获得了以下内容。所有其他支持文件(style.css、formatter.js 等)都在那里:

report.js 文件包含我刚刚运行的测试的正确内容,但是当我打开 index.html 文件时,浏览器会呈现一个空白页面。我正在运行一个简单的测试,只是为了让所有东西都连接起来。我的测试类如下所示:

正如我所说,我的测试运行良好。我可以看到 junit xml 输出并且它是正确的(除了它实际上没有将失败的测试注册为失败的事实 - 但这是另一个问题)。

我可以对我的配置做些什么,使其不再将内容放入 html 文件中?

为了完整起见,这是我的步骤定义文件:

我正在通过 gradle 1.0 运行它,如果这会有所不同(我不这么认为,因为它昨天还在工作)。

任何帮助表示赞赏。

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 回答
2503 浏览

cucumber-jvm - 手动运行 Cucumber JVM 测试

我有一点特殊情况。基本上我有一个单元测试,用@Test 注释,在那个测试中我需要执行一个 Cucumber JVM 测试类。

为什么?很长的故事。与类加载器和 RoboGuice 有关,它不是很重要,但它确实限制了我能做什么和不能做什么。

下面是测试方法:

MyCucumberTest 是我创建的一个类,注释如下:

为什么我注释掉了@RunWith 注释?因为如果我不这样做,Cucumber 测试运行程序将拿起测试并运行它,这是我不想要的,因为我正在手动运行测试。

问题是上述方法不起作用。看起来 Cucumber 正在查找功能文件,它正在验证 MyCucumberTest 是否包含 @Givens 等,它甚至会打印出测试,就好像它正在运行它一样。

但事实并非如此。在@Given、@When 和@Then 方法中没有执行任何代码。我不确定为什么会这样,但我有一个模糊的想法,即 Cucumber JVM 测试运行器不想执行代码,因为该类没有使用 @RunWith 注释。

任何人都可以帮忙吗?