如何编写一个 Maven 插件 IT 测试正确地使其构建失败,从而导致整体通过?

How to write a Maven plugin IT test that correctly fails its build, resulting in an overall pass?

当从archetype 生成骨架Maven 插件时,新项目在src/it 目录下包含一个Maven 项目。它是一个集成(由 it 目录名称暗示)并且在 Maven 的 integration-test 阶段 运行 时它通过了新鲜的开箱即用。

有将近 10 个这样的 IT Maven 项目,其中一个子集有意导致 BUILD FAILURE,以及确保这些构建因正确原因而失败的附带 verify.groovy 脚本。理想情况下,由于正确原因而失败的每个 IT 测试子构建都会导致该 IT 测试通过,但是通过将这些失败的 IT 测试中的任何一个作为整个集成测试套件的一部分,也会导致整个 Maven 运行 失败,这对我来说是不正确的。

我如何引导 Maven 运行 那些失败的 Maven 子构建,忽略它们的构建结果,但尊重它们的 Groovy 验证脚本的结果?

编辑:一项 IT 测试(已禁用)是 committed here

如果你想写一个集成测试,结果是失败的 你必须通过 invoker.properties 文件这样表达:

invoker.buildResult=failure

可以在 the documentation 中找到文件的完整描述。