问题标签 [cucumber-java]

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

cucumber - Cucumber 在 Java 中拆分 JSON 字符串错误

当我在 Java 测试中使用 Cucumber 时,JSON 字符串作为输入似乎有问题,例如

错误显示:

}

但实际上,整个 JSON 字符串不应该被拆分。

0 投票
1 回答
3269 浏览

regex - 如何逃脱“?” 在 Cucumber Java 中?

我正在使用黄瓜 java。在步骤定义中,我想将问号用作字符串而不是被视为正则表达式,这意味着我需要对其进行转义。我已经看到有关转义的主题并尝试申请:

在功能文件中,该步骤将显示为:

(请注意问号前的反斜杠)

我想得到:

我应该如何编写我的步骤,以便正确转义问号,而不添加其他字符?

编辑:在问号前使用单个反斜杠会导致字符串文字异常中出现非法转义字符。奇怪的是,在步骤中的任何位置使用单个反斜杠转义引号不会显示此异常。

0 投票
3 回答
35683 浏览

cucumber - Cucumber 1.2.4 未找到步骤定义:“您可以使用以下代码片段实现缺少的步骤”(2016 年)

我正在尝试在类 UNIX 上使用 Maven 运行 Cucumber(不幸的是,我被迫使用 Windows,尽管 cmd.exe 具有相同的结果)命令行:

mvn clean test -Dcucumber.options="src/test/resources/com/example/sqa/automation_cuke/pages/sample_test.feature"

结果是:

我查看了所有关于此错误消息和类似错误消息的热门 Google/SO 搜索。许多,例如Cucumber 在运行单个功能时找不到步骤Cucumber 找不到步骤定义,比如说用-rand --require 参数指定我的步骤定义,但它们似乎已在某些时候从 Cucumber 中删除,因为我得到一个Unknown option: -r错误。

许多其他答案说,当 @CucumberOptions胶水参数定义不正确时,会发生此错误(奇怪)。但我尝试了以下胶水,但都没有奏效:

sqa.automation_cuke.pages path:sqa.automation_cuke.pages classpath:sqa.automation_cuke.pages com.example.sqa.automation_cuke.pages classpath:com.example.sqa.automation_cuke.pages path:com.example.sqa.automation_cuke.pages C:/development/cucumber-demo/src/main/java/com/example/sqa/automation_cuke/pages src/main/java/com/example/sqa/automation_cuke/pages classpath:C:/development/cucumber-demo/src/main/java/com/example/sqa/automation_cuke/pages classpath:src/main/java/com/example/sqa/automation_cuke/pages path:src/main/java/com/example/sqa/automation_cuke/pages C:\\development\\cucumber-demo\\src\\main\\java\\com\\example\\sqa\\automation_cuke\\pages src\\main\\java\\com\\example\\sqa\\automation_cuke\\pages classpath:src\\main\\java\\com\\example\\sqa\\automation_cuke\\pages path:src\\main\\java\\com\\example\\sqa\\automation_cuke\\pages

我也试过:

  • 定义 --glue 在-Dcucumber.options.
  • 将我的源代码目录结构更改为 src/test/java/example/automation_cuke、src/main/java/example/automation_cuke、src/test/resources/example/automation_cuke 等。
  • 将我的 .feature 文件放在 main...resources 中。
  • @Given 中的各种不同文本,例如@Given("that I have my animals").

这是我的项目结构。根据此答案,我确保资源结构与其余代码匹配:

黄瓜-demo项目结构

sample_text.feature:

MySampleTest.java:

pom.xml:

任何帮助,将不胜感激!

0 投票
3 回答
1739 浏览

java - 如何检测 cucumber-jvm junit 项目中未使用的步骤定义?

我正在使用 cucumber-junit 项目运行自动化测试,我的项目中大约有 200 个场景。现在的问题是,很难在我的项目中找到未使用的步骤定义,因为我们经常需要更新功能。有没有任何检测不再有用的步骤定义的解决方案。非常感谢任何帮助!

0 投票
1 回答
2469 浏览

cucumber-jvm - 从可执行 JAR 运行单个黄瓜场景

我想将我的验收测试打包到一个可执行的 JAR 中,其中包含所有必要的库以运行测试和生成报告。我还想运行所有测试或单个测试。

到目前为止,我能够运行所有测试,虽然报告是在我在 serenity.properties 中指定的位置生成的,但没有生成 index.html。

通常,我会使用运行 serenity-maven-plugin 的 maven verify 目标运行我的测试,但是由于我是从 JAR 运行的,所以我不确定如何实现相同的目标。

我有一个主类,如下所示:

我的功能文件使用标签,以便我可以指定要运行的单个场景:

我希望有一种方法可以将 JVM args 与可执行 JAR 一起使用,以某种方式允许我设置黄瓜选项。我试着做这样的事情:

...但这仍然运行所有测试。

任何想法将不胜感激。

0 投票
3 回答
94 浏览

cucumber - Cucumber web 测试 - 捕获价值

我需要自动化注册表单并创建一个新帐户,然后使用相同的帐户详细信息使用新创建的帐号和密码登录。我需要在一个场景中执行此操作。

功能:创建新用户并获取用户名、密码并尝试使用这些详细信息登录。

0 投票
2 回答
28591 浏览

cucumber - 命令行中的黄瓜`--tags`选项?

我想做的是从命令行传递黄瓜选项以执行带有标签名称@extecuteThese的场景,但我也想排除带有标签名称@WIP的场景,所以到目前为止我在做什么

但不幸的是,它没有考虑 ~@WIP 标签选项

任何帮助,非常感谢!

0 投票
1 回答
6987 浏览

java - 带有 Spring Boot 集成的 Cucumber Java - Spring @Autowired 抛出 NullPointer 异常

我正在为测试每个功能的 Spring 引导应用程序编写 cucumber-java 单元测试。当我与 spring boot 集成时,@Autowired 类抛出 NullPointer 异常。

Spring Boot 应用程序类

要测试的类

黄瓜单元类

黄瓜定义类

spring 与 cucumber 类的集成

如果定义类以这种方式工作

如果以这种方式定义类,则它不起作用,抛出 NullPointer 异常,

@Autowired 在这个地方不起作用,我在运行测试时也看不到 Spring 启动应用程序日志。是集成springboot应用程序类进行黄瓜单元测试的正确方法。请建议我对此进行修复。

0 投票
1 回答
696 浏览

cucumber - 执行特征文件后如何从黄瓜结果中捕获文本并将其作为测试数据传递给另一个特征文件?

我有一个功能文件 A.feature 在响应正文中生成一个数字。现在,我必须捕获该文本/数字,然后将其作为测试数据传递给另一个功能文件。我们需要编写步骤定义还是有其他方法?请建议。

0 投票
1 回答
3583 浏览

maven-3 - Maven 属性标签和依赖版本

当我使用 pom 文件的属性部分中定义的键的依赖项的版本时,不会下载依赖项,但是当我对依赖项的版本进行硬编码时,会下载依赖项。

对于上面的块,当我运行mvn clean test然后在控制台中,错误显示为:-

完成 pom.xml

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">4.0.0 com.manish.cucumber MavenCucumber jar 1.0-SNAPSHOT MavenCucumber http://maven.apache.org

我使用的 Maven 版本是 Maven-3

为什么 maven 尝试从 url 获取依赖项,如下所示:-

repo.maven.apache.org/maven2/info/cukes/cucumber-java/{cucumber-version}/cucumber-java-{cucumber-version}.pom

为什么不将 {cucumber-version} 替换为属性标签中定义的 1.2.4