如何在post-build脚本中获取invoker集成测试的控制台输出
maven-invoker-plugin Groovy post-build脚本获取集成测试控制台输出方案
maven-invoker-plugin执行每个集成测试时,默认会将本次测试的全量控制台输出写入测试项目根目录下的build.log文件,post-build脚本运行时的工作目录恰好是当前集成测试项目的根目录,直接读取该文件即可获取全部控制台输出。
具体实现步骤
- 直接在Groovy post-build脚本中读取
build.log文件内容,完成文本校验,示例代码如下:
// 读取全量控制台输出日志 def consoleOutput = new File("build.log").text // 校验目标文本是否存在 def expectedText = "你要匹配的特定打印内容" if (!consoleOutput.contains(expectedText)) { // 校验不通过时抛出异常,直接终止Maven构建 throw new RuntimeException("集成测试控制台输出校验失败,未找到预期文本:" + expectedText) } println "控制台输出校验通过"
- 如果需要正则匹配校验,可替换判断逻辑为:
// 正则匹配示例:匹配以"任务执行完成,耗时"开头的日志行 def regexPattern = ~/.*任务执行完成,耗时\d+ms.*/ if (!consoleOutput.matches(regexPattern)) { throw new RuntimeException("正则校验失败,控制台未匹配到目标格式日志") }
注意事项
- 如果你在maven-invoker-plugin的配置中通过
<logFile>参数自定义了日志文件名,请将代码中的build.log替换为你自定义的文件名 - 若目标文本存在重复可能,建议补充上下文特征缩小匹配范围,避免误判
内容的提问来源于stack exchange,提问作者yegor256
相关产品推荐
相关产品推荐

