Maven 核心集成测试套件

这个模块提供了有效的核心集成测试套件,从bootstrap开始。

核心 IT 套件结果

IT 结果显示在控制台上,并可通过 Surefire Report 在网站上发布。

mvn -Preporting site

当前部署的Surefire 报告是使用以下环境生成的:

maven.version: 4.0.0-alpha-1-SNAPSHOT
java.version: 1.8.0_202
os.name: Linux
os.version: 5.4.0-94-generic

核心 IT 套件和依赖项(包括插件)

一个好的 IT 不依赖于像 Central 这样的外部存储库,它使用专用的测试插件和测试存储库。IT 使用的默认settings.xml通过将中心指向file:target/null来帮助强制执行此操作,这显然无法解决任何问题。这种使用基于文件的虚拟存储库的设置也有助于缩短执行时间,因为此存储库产生(预期的)404秒比基于 HTTP 的存储库快得多。

需要访问 Central 的一个地方是MavenITBootstrapTest ( src , javadoc ),它并没有真正测试任何东西,只是用 IT 需要的任何工件来准备本地 repo:你可以在这里看到插件和工件的列表在引导期间获取的。

因此,在将新的依赖项引入 IT 本身或支持插件时需要小心。很多时候,我们遇到的故障是所需的实际工件消耗与引导期间填充的内容之间的差异。忘记时,典型的故障(如 ASF CI 中所见)将在日志中给出以下跟踪:

[ERROR] testit(org.apache.maven.it.MavenITmng...)  Time elapsed: 0.145 s  <<< ERROR!
...
[ERROR] Failed to execute goal ... (...) on project ...: ... Could not find artifact ... in central (file:target/null) -> [Help 1]

使用本地存储库管理器

如果您使用本地存储库管理器,在~/.m2/settings.xml中配置为central的镜像,它将使以前的设置无效:工作的 Core IT 套件可以在您的笔记本电脑上运行,但由于缺少工件而在 ASF CI 上失败.

注释掉您的镜像配置以启用预期的本地故障,然后能够调试和修复问题。