Fra*_*ank 2 java cucumber maven
我正在尝试运行Maven的两个黄瓜功能文件,但没有任何反应。我正在使用荷兰语(NL)的小黄瓜。当我直接在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 / registratiepage.feature“,但是结果是一样的
这是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 {
}
小智 8
对于其他任何可能遇到我所遇到问题的人,@ PJMeish的答案对我有用:
“我不了解TestNG,但是当使用JUnit(至少使用Java类)运行测试时,这些类的名称必须以'Test'结尾。因此也许您需要相应地命名测试文件。”
因此,我将测试运行器类重命名为以“测试”结尾,从而解决了行家不运行我的黄瓜测试的问题。
看起来maven没有找到任何测试。可以分享一下你的跑步课程吗?另外,您可能想定义 testng groupid 的范围。
编辑:
我今天学到了一些新东西...... 鉴于== gegeven!
我得到了你正在运行的项目,但有一些变化。遵循项目的结构: 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();
    }
}