当前位置: 首页 > 知识库问答 >
问题:

梅文无视cucumber测试

长孙兴德
2023-03-14

我试图运行Maven的两个cucumber功能文件,但什么也没发生。我用的是荷兰版的小cucumber。当我直接在Eclipse或Gradle中运行功能文件时,它们运行良好。我在Stackoverflow上研究了所有关于这个问题的早期问题,但仍然找不到解决方案。

这是我在Eclipse中的项目结构:Eclipse项目结构

使用命令mvn Test与Maven一起运行项目的结果是:

Running nl.werkwel.cucumber.RunTest
Configuring TestNG with: org.apache.maven.surefire.testng.conf.TestNG652Configurator@f5c0729
Tests run: 0, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.341 sec

Results :

Tests run: 0, Failures: 0, Errors: 0, Skipped: 0

[INFO] BUILD SUCCESS

我还尝试使用:“mvn test-Dcucumber.options=“src/test/resources/registrationPage”运行。但结果是一样的

这是POM

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>nl.werkwel</groupId>
  <artifactId>cucumber</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>jar</packaging>

  <name>cucumber</name>
  <url>http://maven.apache.org</url>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>

  <dependencies>
    <dependency>
        <groupId>info.cukes</groupId>
        <artifactId>cucumber-java</artifactId>
        <version>1.2.4</version>
    </dependency>
    <dependency>
        <groupId>org.testng</groupId>
        <artifactId>testng</artifactId>
        <version>6.8.8</version>

    </dependency>

    <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-java</artifactId>
        <version>2.53.0</version>
    </dependency>

    <dependency>
        <groupId>javax.mail</groupId>
        <artifactId>mail</artifactId>
        <version>1.4.7</version>
    </dependency>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.12</version>
    </dependency>
    <dependency>
        <groupId>info.cukes</groupId>
        <artifactId>cucumber-junit</artifactId>
        <version>1.2.4</version>
    </dependency>

  </dependencies>

</project>

以下是其中一个功能文件:

# language: nl
Functionaliteit: Testen van de Registratiepagina

  Achtergrond: 
      Gegeven Gebruiker is op de registratiepagina

  Scenario: Niet succesvolle registratie, emailadres niet gevuld
    Als Gebruiker geen emailadres invult
    En Klikt op de button nu registreren
    Dan wordt de melding "Voer een waarde in" getoond

    Scenario: Link Algeregistreerd
    Als Gebruiker op link algeregistreerd klikt
    Dan gaat gebruiker verder naar het inlogscherm

  Scenario: Link Annuleren
    Als Gebruiker op link annuleren klikt
    Dan gaat gebruiker verder naar het inlogscherm

跑步者班

package nl.werkwel.cucumber;

import org.junit.runner.RunWith;
import cucumber.api.CucumberOptions;
import cucumber.api.junit.Cucumber;

@RunWith(Cucumber.class)
@CucumberOptions(


        plugin = {"pretty", "html:out"},
        features={"."}

        )


public class RunTest {

}

共有3个答案

尉迟德惠
2023-03-14

似乎maven没有找到任何测试。你能分享你的跑步课吗?此外,您可能需要定义testng groupid的范围。

https://github.com/cucumber/cucumber-jvm/blob/master/examples/java-calculator-testng/src/test/java/cucumber/examples/java/calculator/RunCukesTest.java

编辑:

今天我学到了一些新东西。。。给定==格格文!

我得到了你运行的项目,但有变化。遵循项目的结构:https://github.com/cucumber/cucumber-jvm/tree/master/examples/java-calculator-testng

以下是pom的变化:正如@chrylis所质疑的,Junit和TestNG都存在,不需要。删除junit您的依赖项如下:

<dependencies>
    <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-java</artifactId>
        <version>2.53.0</version>
    </dependency>

    <dependency>
        <groupId>javax.mail</groupId>
        <artifactId>mail</artifactId>
        <version>1.4.7</version>
    </dependency>

    <dependency>
            <groupId>info.cukes</groupId>
            <artifactId>cucumber-jvm-deps</artifactId>
            <version>1.0.5</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>info.cukes</groupId>
            <artifactId>cucumber-java</artifactId>
            <version>1.2.4</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>info.cukes</groupId>
            <artifactId>cucumber-testng</artifactId>
            <version>1.2.4</version>
            <scope>test</scope>
            <exclusions>
                <exclusion>
                    <groupId>junit</groupId>
                    <artifactId>junit</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
  </dependencies>

我无法使套件与您的Runner类一起运行,并使用TestNGCucumberRunner类执行

/** Create one test method that will be invoked by TestNG and invoke the 
 * Cucumber runner within that method.
 */
  @CucumberOptions(plugin = "json:target/cucumber-report-composite.json")
    public class RunCukesByCompositionTest {

    @Test(groups = "examples", description = "Example of using TestNGCucumberRunner to invoke Cucumber")
    public void runCukes() {
        new TestNGCucumberRunner(getClass()).runCukes();
    }
}
盖博简
2023-03-14

是的,运行程序或主类名应该以测试结束,

连成益
2023-03-14

对于其他可能有我问题的人,@P.J.Meish的回答对我很有用:

“我不知道TestNG,但在使用JUnit(至少是Java类)运行test时,类的名称必须以“test”结尾。因此,您可能需要相应地命名testfile。”

因此,我重命名了我的测试运行程序类,以“test”结尾,这解决了maven不运行我的cucumber测试的问题。

 类似资料:
  • 我正在尝试使用Spring Roo 1.2.4创建和编译一个项目……我正在使用:-Spring Roo 1.2.4.RELEASE-Spring STS 3.4.0.RELEASE-Maven 3.0.5 Spring Roo控制台接缝正常。但Maven依赖项在Eclipse IDE中有一个错误。 缺少神器org.springframework.roo:org.springframework.ro

  • 梅雁电子文档管理系统是基于Python+Django开发的一个类知识库和在线图书馆的开源系统,是 Mayan EDMS 的中文化版本。 Mayan EDMS 是一个文档管理系统。其主要目的是存储、内省和分类文件,重点是保留文档的上下文和业务信息。它还可以OCR、预览、标签、签名、发送和接收文件。其他功能是其工作流系统,基于角色的访问控制和REST API。 2009年乌拉圭政府发起了一个文档电子化

  • 我正在尝试使用IntelliJ Community edition和Gradle5.5.1运行一个Cucumber/Selenium项目。 我的TestRunner类如下:

  • @使用TestNG在cucumber中执行@Test后,BeforeMethod未执行 我已经将maven与cucumber集成,并使用TestNG编写了脚本。我在pom中添加了必要的依赖项。xml当我执行脚本@BeforeMethod在执行@Test之后不起作用时,你能告诉我是否支持TesNG注释吗?。你能在这方面给我指点迷津吗。 转轮类: 步骤定义: 期望:@before方法应该在每个@Tes

  • 有没有人能告诉我为什么我不能使用Maven运行任何测试。 已配置SureFire插件 在runner类下设置胶合代码 “测试”被追加到runner类 注意:如果我将文件作为Junit运行,那么它可以正确地运行所有场景。只有当我使用Maven运行它时,才不会运行任何测试。

  • 在我的项目中,我使用的是Mavencucumber测试。 我有个试跑员 对于 jenkins 上的日常运行,我使用特定功能“mvn clean test -s -Dcucumber.filter.tags=”tag_from_feture_file“”。一切正常。 但是,有时我需要执行不包含在Jenkins中的小测试,它们不在功能文件中写入。例如: 问题是 - 当我将带有注释 (@Test) 的测