5

我有 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] ------------------------------------------------------------------------

我不确定这是否会发生,以及 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>
4

2 回答 2

4

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

引用故障安全插件页面(强调我的):

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

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

mvn 验证

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

于 2014-09-25T09:03:42.370 回答
0

您应该设置 maven-failsafe-plugin 的版本。例如到 2.14.1。

并且您的集成测试类必须以“IntegrationTest”结尾,例如:CustomDaoIntegrationTest

于 2013-09-28T13:35:44.277 回答