标签: cucumber-java

我如何在黄瓜中运行特定场景

如何在多个场景中在黄瓜中运行特定场景?

特征文件

Feature: Test Test Smoke scenario

  Scenario: Test login with valid credentials
    Given open firefox and start application
Run Code Online (Sandbox Code Playgroud)

jhbhhjhj 当我点击登录并输入有效的“kumar.rakesh@yopmail.com”和有效的“admin@123”然后点击登录,用户应该能够成功登录

  Scenario: Test shop for cart
    Given Click on shop for carts
    And select plates
    When Click on Add to cart
    Then product should be added in the cart successfully
    And verify the product
    
Scenario: Test login with valid credentials1
    Given open firefox and start application
    When I click on Login
    And enter valid "kumar.rakesh@yopmail.com" and valid "admin@123"
    Then Click …
Run Code Online (Sandbox Code Playgroud)

cucumber selenium-webdriver cucumber-java

7
推荐指数
2
解决办法
1万
查看次数

从 Cucumber 中的另一个功能调用一个功能文件

考虑我有以下功能文件:

登录功能

功能:登录网站

场景:现场登录验证

  • 给定导航到站点登录页面
  • 当用户输入用户名“admin1”时
  • 用户输入密码“admin1”
  • 用户单击登录按钮
  • 那么用户应该无法成功登录

首页.专题

功能:欢迎页面验证

场景:验证登录后出现的页面

  • 登录成功
  • 当出现登录成功后的页面时
  • 然后测试完成

在Home.feature文件中,我需要先执行Login.feature,然后调用home.feature。因此,当我从跑步者测试中执行 home 时,它​​将依次执行登录,然后执行 home。

RunnerTest.java

import org.junit.runner.RunWith;

import cucumber.api.CucumberOptions;
import cucumber.api.junit.Cucumber;

@RunWith(Cucumber.class)


@CucumberOptions(strict = false, features = {
        "src/test/resources/Features/Home.feature",
            }, glue = { "tests" }, plugin = "html:target/cucumber-reports", format = { "pretty",
        "json:target/cucumber.json" }, tags = { "~@ignore" })

public class RunnerTest {}
Run Code Online (Sandbox Code Playgroud)

java cucumber cucumber-junit cucumber-java

7
推荐指数
1
解决办法
1万
查看次数

黄瓜-junit-平台引擎中的@CucumberOptions

我正在尝试将我的黄瓜测试迁移到 ,cucumber-junit以便cucumber-junit-platform-engine能够使用新的平台功能。如何重新定义我的跑步者以使用旧的@CucumberOptions. 我正在调查这个问题,但似乎还找不到正确的方法。

在我使用这些选项之前:

@CucumberOptions(
  plugin = ...,
  features = ...,
  tags = ...,
  glue = ...
)
Run Code Online (Sandbox Code Playgroud)

有没有直接的方法将其迁移到平台引擎?

java cucumber cucumber-junit cucumber-java junit5

7
推荐指数
1
解决办法
1万
查看次数

IntelliJ - 黄瓜步骤定义案例

自从我升级到IntelliJ 15.0.3的最新社区版本后,每当我使用功能定义文件自动生成步骤定义时alt + enter,它都会以驼峰形式创建方法,而不是使用下划线的常规样式.

例如,它曾经像这样生成

@When("Cucumber is awesome")
public void cucumber_is_awesome() {}
Run Code Online (Sandbox Code Playgroud)

但现在它产生了通常的camelCase约定:

@When("Cucumber is awesome")
public void cucumberIsAwesome() {}
Run Code Online (Sandbox Code Playgroud)

有没有办法将此设置更改回第一个样式?

谢谢

intellij-idea cucumber cucumber-java

6
推荐指数
1
解决办法
644
查看次数

运行 Cucumber 功能文件时出错 未知选项:--plugin

Usage: java cucumber.api.cli.Main [options] [ [FILE|DIR][:LINE[:LINE]*] ]+

Options:

-g, --glue PATH                    Where glue code (step definitions and hooks) is loaded from.
-f, --format FORMAT[:PATH_OR_URL]  How to format results. Goes to STDOUT unless PATH_OR_URL is specified.
                                   Built-in FORMAT types: junit, html, pretty, progress, json.
                                   FORMAT can also be a fully qualified class name.
-t, --tags TAG_EXPRESSION          Only run scenarios tagged with tags matching TAG_EXPRESSION.
-n, --name REGEXP                  Only run scenarios whose names match REGEXP.
-d, --[no-]-dry-run                Skip execution of glue code. …
Run Code Online (Sandbox Code Playgroud)

bdd cucumber cucumber-jvm cucumber-junit cucumber-java

6
推荐指数
1
解决办法
1万
查看次数

CLI 运行程序黄瓜.api.cli.Main 找不到步骤定义

问题
Cucumber 在使用 CLI 运行器运行时找不到步骤定义,但在使用 junit 运行器运行时可以找到它。

也就是说,当从 linux 命令行运行黄瓜 jvm 时,找到了特征文件,但没有找到步骤定义文件,产生消息,
"Undefined scenarios: src/test/java/com/logic/testing/ClassifyDocuments.feature:8"
(完整消息见底部)

但是,通过 Maven 运行,例如“mvn test”,会找到步骤定义并且测试按预期执行。我已经看过类似的问题,并且在我秃顶之前希望得到任何帮助。
- 文件是否需要以不同的方式组织,例如使用“资源”目录?
- 胶水参数 com.logic.testing 是否不正确?
- 类路径有问题吗?

详细信息
这是在“自动测试”文件夹中发出的命令行语句:
java -cp "/usr/local/bin/cucumber/cucumber-core-1.2.5.jar:/usr/local/bin/cucumber/*:." cucumber.api.cli.Main -g com.logic.testing src/test/java/com/logic/testing/ClassifyDocuments.feature -s

代码的组织方式如下:
auto-test/
  src/test/java
    com.logic.testing
      StepDefinitions.java
      ClassifyDocuments.feature
  src/main/java
    com.logic.testing
      AutoTestController.java(包含一个被 StepDefinitions.java 引用的类)
  target/test-classes/com/logic/testing/
    StepDefinitions.class
  target/classes/com/logic/testing/
    AutoTestController.class

在 /usr/local/bin/cucumber/ 是:
cucumber-core-1.2.5.jar Cucumber
-java-1.2.5.jar Cucumber
-jvm-deps-1.05.jar gherkin
-2.12.2.jar

ClassifyDocuments.feature 文件:

Feature: Classify documents in a package
  As an auditor
  I want to use software
  So …
Run Code Online (Sandbox Code Playgroud)

java command-line-interface cucumber cucumber-jvm cucumber-java

6
推荐指数
1
解决办法
5546
查看次数

如何使用jvm-cucumber-parallel-plugin重新运行失败的测试

我正在使用jvm黄瓜并行插件,并希望重新运行我失败的测试用例.在.pom文件中需要进行哪些更改.

  <plugin>
            <groupId>com.github.temyers</groupId>
            <artifactId>cucumber-jvm-parallel-plugin</artifactId>
            <version>4.2.0</version>
            <executions>
                <execution>
                    <id>generateRunners</id>
                    <phase>generate-test-sources</phase>
                    <goals>
                        <goal>generateRunners</goal>
                    </goals>
                    <configuration>
                        <outputDirectory>${basedir}/target/runner</outputDirectory>
                        <glue>
                            <package>com.xxx.stepdefs</package>
                            <package>com.xxx.cucumber.hooks</package>
                        </glue>
                        <featuresDirectory>src/test/resources/feature</featuresDirectory>
                        <cucumberOutputDir>${basedir}/target/cucumberreport/json</cucumberOutputDir>
                        <format>json</format>
                        <strict>true</strict>
                        <plugins>
                            <plugin>
                                <name>json</name>
                            </plugin>
                        </plugins>
                        <useTestNG>true</useTestNG>
                        <namingScheme>pattern</namingScheme>
                        <namingPattern>Parallel{c}TestRunner</namingPattern>
                        <parallelScheme>FEATURE</parallelScheme>

                    </configuration>
                </execution>
            </executions>
        </plugin>
Run Code Online (Sandbox Code Playgroud)

xml selenium cucumber cucumber-jvm cucumber-java

6
推荐指数
1
解决办法
1233
查看次数

黄瓜报告 json 文件中的持续时间单位是什么?

谁能告诉我在黄瓜报告 json 中捕获的 step.result 中找到的持续时间单位是什么?是毫秒、微秒、纳秒还是其他什么?

cucumber cucumber-java

6
推荐指数
1
解决办法
1596
查看次数

Cucumber kotlin:通过 Intellij 启动测试时出现 IllegalStateException

我正在尝试通过 intellij 启动一个黄瓜(用 kotlin 编写)。

我有一个步骤定义类,描述如下:

在此输入图像描述

当我从 Intellij 启动测试时,“Given”方法出现此异常:java.lang.IllegalStateException: Could parse the return type of the lambda at BusinessEventSteps.kt:19

在此输入图像描述

从命令行使用“mvn clean install”时,测试运行良好。

我的环境:

  • 苹果系统
  • 科雷托 11.0.11
  • Intellij 2021.1.1
  • 科特林 1.4.10
  • 黄瓜6.10.4

exception intellij-idea cucumber kotlin cucumber-java

6
推荐指数
1
解决办法
717
查看次数

从另一个主要方法使用 Main.run 运行 Cucumber 项目

我是 Cucumber 的新手并试图解决简单的问题:

我创建了一个 Java 项目并将所有与黄瓜相关的 jars 引用到该项目的构建路径(称为“CukeTest4”),下面是显示 java 文件和功能文件的结构。当我在 Eclipse 中将此功能文件作为 Cucumber 功能运行时,它运行良好。

在此处输入图片说明

现在,我想从另一个主要方法运行它。我创建了另一个 Java 项目,添加了一个带有 main 方法的类,下面的代码在默认包中。

import cucumber.api.cli.Main;

public class UseCukeFromMain {
    public static void main(String[] args) throws Throwable 
    {
        Main.main(new String[]{"-g", "C:/work/workspaces/neon2_wks_new1/Cuketest4/src/com/cuke", "C:/work/workspaces/neon2_wks_new1/Cuketest4/src/com/cuke/cukefeature.feature"});
    }
}
Run Code Online (Sandbox Code Playgroud)

我已经在 java 文件中提供了该方法的实现,因为它在 Eclipse 中运行良好,但显示了下面的消息来实现该方法

[33mU[0m

1 Scenarios ([33m1 undefined[0m)
1 Steps ([33m1 undefined[0m)
0m0.000s


You can implement missing steps with the snippets below:

@Given("^I want to write a step with precondition$")
public void i_want_to_write_a_step_with_precondition() throws Throwable {
// Write code …
Run Code Online (Sandbox Code Playgroud)

java bdd cucumber cucumber-jvm cucumber-java

5
推荐指数
1
解决办法
9368
查看次数