2016-09-25 138 views
0

我試圖通過Maven運行兩個黃瓜功能文件,但沒有任何反應。我正在使用荷蘭語(荷蘭語)版的小黃瓜。當我直接在Eclipse或Gradle中運行功能文件時,它們運行良好。我研究了Stackoverflow上關於此問題的所有早期問題,但仍找不到解決方案。Maven忽略我的黃瓜測試

這是Eclipse的我的項目結構: Eclipse project structure

使用命令MVN測試運行與Maven該項目的結果是:

與運行nl.werkwel.cucumber.RunTest 配置TestNG的: [email protected]729 試驗運行:0,故障:0,錯誤:0,跳過:0,所經過的時間:0.341秒

結果:

試驗運行:0,故障:0,錯誤:0,跳過:0

[INFO] BUILD SUCCESS

我還試圖與運行: 「MVN測試-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 { 

} 
+0

需要的POM和的至少一個特徵。 – chrylis

+0

Thnx Chrylis爲您的反應,我添加了信息。 – Frank

+0

切換到Gradle..joke ...有點兒。:) – pczeus

回答

0

這似乎是行家沒有發現任何測試。你能分享你的跑步課程嗎? 另外,您可能想爲您的testng groupid定義範圍。

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

編輯:

我今天新學到了一些東西......鑑於== 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> 

我沒能做出套件運行與亞軍類和用於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(); 
    } 
} 

enter image description here

+0

我添加了Runner類。我改變了testng groupid的測試範圍,但沒有得到肯定的結果。 – Frank

+0

看看這是否有幫助,@Frank – Sid

+0

Thnx Sid,終於讓我的測試運行,不知道如果項目結構,POM或亞軍類是失敗的原因。我改變了他們三個人的事情。如果您有興趣學習比「gegeven」更多的荷蘭語,歡迎您 – Frank