首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >配置始终运行的post执行作业

配置始终运行的post执行作业
EN

Stack Overflow用户
提问于 2012-03-26 15:57:38
回答 2查看 2.4K关注 0票数 3

在我的项目POM文件中,我需要配置一个后执行步骤。也就是说,在运行testng单元测试之后,post exec。作业将解析testng-xml-报告,并生成一个统计页面。报告生成将由一个单独的Jar完成。此Jar将在POM的verify阶段调用。

但当前的问题是,对于test阶段的测试成功场景,它将调用Jar并正常工作。对于一个失败案例,将生成xml,但是由于test阶段失败了,所以它不会继续到verify阶段。

因此,我是否可以指定一个maven-exec-plugin's必须运行案例,即Jar调用的目标,而不管test阶段是否成功。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-03-26 16:03:03

此方案的正确解决方案是不通过测试。测试应该记录失败(例如,在XML报告中),但是运行程序必须将“成功”返回给Maven。

对于万无一失,您可以使用-DtestFailureIgnore=true实现这一点。

编辑您可以将其放入POM中以永久激活它。

但是,如果您用不同的目标调用maven,结果可能是不可取的。例如,对于mvn deploy,您可能希望在出现测试失败时进程停止。

要解决这个问题,您有两个选项:

  1. 编写一个调用Maven的脚本,并提供创建测试报告所需的选项
  2. 将该选项移动到配置文件

编辑关于选项1的详细信息:您可以编写一个使用-DtestFailureIgnore=true运行Maven的shell脚本来创建报告。

然后,您需要一个实用程序来定位XML报告并检查其中是否有任何错误。如果为此使用Java,如果发现错误,请调用System.exit(1)。如果您希望使用命令行,可以使用XMLStarlet对XML运行查询,并使用像find(1)这样的工具来定位XML文件。如果你需要帮助的话,就发布新的问题。

使用util || exit 1在shell脚本中的Maven之后调用此实用程序--如果该实用程序发现错误,它将停止使用1错误代码的shell脚本。

使用此脚本来构建,而不是使用嵌入式Maven运行程序。

票数 2
EN

Stack Overflow用户

发布于 2012-03-26 16:01:49

您可以使用mvn -fn clean install

-fn代表“永不失败”,即使某一段失败了,它也将永远继续下去。

更多选项请参见mvn -help

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9875481

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档