Failsafe 集成测试期间的错误不会导致 Maven 构建失败

eld*_*oro 5 selenium integration-testing maven maven-failsafe-plugin

我有 Failsafe 运行 Selenium 集成测试。如果我在测试中的断言之一没有通过并且测试失败,那么 Maven 构建将按预期失败。但是,如果测试出错,构建会意外地成功完成(输出如下)

Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 14.075 sec <<< FAILURE!

Results :

Tests in error:
  test(uk.co.ned24.ExpandedIT)

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

[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 7 minutes 40 seconds
[INFO] Finished at: Wed Jan 30 16:58:28 GMT 2013
[INFO] Final Memory: 78M/209M
[INFO] ------------------------------------------------------------------------
Run Code Online (Sandbox Code Playgroud)

我不确定这是否会发生,Selenium 是否会导致意外行为?我查看了插件 doco 并找不到任何可以设置为在测试错误后使构建失败的标志。

理想情况下,我想让构建在测试错误时失败,所以希望得到任何建议!我附上了从我的 POM 中剪下的故障保护,以防万一。

谢谢,尼克

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-failsafe-plugin</artifactId>
    <executions>
        <execution>
            <id>integration-test</id>
            <goals>
                <goal>integration-test</goal>
            </goals>
        </execution>
        <execution>
            <id>verify</id>
            <goals>
                <goal>verify</goal>
            </goals>
        </execution>
    </executions>
    <configuration>
        <systemPropertyVariables>
            <configDir>${basedir}/local/integration-test</configDir>
        </systemPropertyVariables>
    </configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)

kro*_*ing 6

你应该打电话mvn verify而不是mvn integration-test

引用Failsafe Plugin 页面(强调我的):

故障安全插件在构建生命周期的集成测试和验证阶段使用,以执行应用程序的集成测试。故障安全插件不会在集成测试阶段使构建失败,从而使集成测试后阶段能够执行。

注意:运行集成测试时,您应该使用(也更短的输入)调用maven

MVN验证

而不是尝试直接调用集成测试阶段,否则集成测试后阶段将不会被执行。