【问题标题】:Error during Failsafe integration test does not cause failed Maven buildFailsafe 集成测试期间的错误不会导致 Maven 构建失败
【发布时间】:2013-01-14 21:08:35
【问题描述】:

我有 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 中截取的 Failsafe,以备不时之需。

谢谢,尼克

<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>

【问题讨论】:

  • 你怎么称呼maven?你能显示完整的pom文件吗?您使用哪个版本的 maven-failsafe-plugin ?
  • 嘿,我刚刚意识到我做错了什么,我只是从命令行运行“mvn integration-test”,而 Failsafe 只会在生命周期的验证阶段失败构建,这在集成测试之后。
  • 好的。所以你需要调用 mvn verify ;-)。
  • 谢谢!我真的需要一只橡皮鸭来解决这些问题
  • 非常感谢! “集成测试”不会使构建失败,而“验证”会失败。即使测试失败。

标签: maven selenium integration-testing maven-failsafe-plugin


【解决方案1】:

您应该调用mvn verify 而不是mvn integration-test

引用Failsafe Plugin page(强调我的):

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

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

mvn 验证

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 2017-03-23
      • 2012-08-30
      • 2019-08-31
      • 2013-05-23
      • 2019-05-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-08
      相关资源
      最近更新 更多