我想做的就是在阶段集成测试中运行测试,然后生成报告。 通过mvn验证
但只有测试执行报告永远不会运行。当我评论第一个插件然后执行其他插件。知道怎么解决吗?
我的pom下面有
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.4.0</version>
<executions>
<execution>
<phase>integration-test</phase>
<goals>
<goal>java</goal>
</goals>
<configuration>
<classpathScope>test</classpathScope>
<executableDependency>
<groupId>info.cukes</groupId>
<artifactId>cucumber-core</artifactId>
</executableDependency>
<mainClass>cucumber.api.cli.Main</mainClass>
<arguments>
<argument>target/test-classes/feature</argument>
<agrument>--glue</agrument>
<argument>integration</argument>
<argument>src\test\java</argument>
<argument>--plugin</argument>
<argument>pretty</argument>
<argument>--plugin</argument>
<argument>html:target/cucumber-report</argument>
<argument>--plugin</argument>
<argument>json:target/cucumber-report/cucumber.json</argument>
<argument>--tags</argument>
<argument>~@ignore</argument>
</arguments>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>net.masterthought</groupId>
<artifactId>maven-cucumber-reporting</artifactId>
<version>0.0.8</version>
<executions>
<execution>
<phase>verify</phase>
<goals>
<goal>generate</goal>
</goals>
<configuration>
<projectName>poc.selenium.it</projectName>
<outputDirectory>target/cucumber-report</outputDirectory>
<cucumberOutput>target/cucumber-report/cucumber.json</cucumberOutput>
<enableFlashCharts>true</enableFlashCharts>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
答案 0 :(得分:0)
问题是由于cucumber.api.cli.Main
calls System.exit
因此在另一个插件执行之前终止了Maven进程。
解决问题的一种方法是使用exec
的{{1}}目标,而不是exec-maven-plugin
目标,因为它在一个单独的进程中运行。
但是,更好(更简单)的解决方案是定义一个JUnit测试,用于配置和运行黄瓜测试,例如:
java
然后,您可以使用package integration;
import org.junit.runner.RunWith;
import cucumber.api.junit.Cucumber;
import cucumber.api.CucumberOptions;
@RunWith(Cucumber.class)
@CucumberOptions(plugin = "json:target/cucumber-report/cucumber.json")
public class RunTest {
}
或maven-surefire-plugin
插件执行该测试。然后maven-failsafe-plugin
插件将成功执行并创建报告。
您可以在github branch I have just pushed上看到这一点。