我正在尝试通过Maven运行两个黄瓜功能文件,但没有任何反应。我正在使用荷兰语(NL)版的小黄瓜。当我直接在Eclipse或Gradle中运行功能文件时,它们运行正常。我在Stackoverflow上研究了有关此问题的所有早期问题,但仍无法找到解决方案。
这是我在Eclipse中的项目结构: Eclipse project structure
使用命令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 {
}
答案 0 :(得分:1)
对于其他任何可能遇到我所遇到问题的人,@ P.J。Meish的回答对我都有效:
“我不了解TestNG,但是当使用JUnit(至少使用Java类)运行测试时,这些类的名称必须以'Test'结尾。因此,也许您需要相应地命名测试文件。” < / p>
因此,我将测试运行器类重命名为'Test'结束,这解决了maven无法运行我的黄瓜测试的问题。
答案 1 :(得分:0)
似乎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();
}
}
答案 2 :(得分:0)
是的,跑步者或主要类别的名称应以Test结尾,
答案 3 :(得分:0)
实际上,我的 pom 文件中有黄瓜 junit 和 junit 依赖项。所以它导致了上述类似的问题。
我已将 runner 类更改为 runnerTest,然后从 pom 文件中删除了 junit 依赖项。
效果很好。试试这个..
谢谢,这里提供的其他解决方案对于解决这个问题非常有用。