Java @Ignore对JUnitXML输出做了什么?

Java @Ignore对JUnitXML输出做了什么?,java,junit,Java,Junit,TeamCity似乎支持显示被忽略的测试,但我试图弄清楚它是如何确定测试用例被忽略的。有人能以@Ignore(“reason”)为例向我提供JUnit测试的XML输出吗?JUnit会忽略带有@Ignore注释的测试。没有生成任何输出。我从未使用过TeamCity,但它似乎正在读取单元测试文件,并显示被忽略测试的信息。那么,@Ignore(“reason”)就junit而言,只是将测试标记为正在进行,“reason”是一个人类可读的文本,用于忽略原因。根据您使用的JUnit runner的不同,测

TeamCity似乎支持显示被忽略的测试,但我试图弄清楚它是如何确定测试用例被忽略的。有人能以@Ignore(“reason”)为例向我提供JUnit测试的XML输出吗?

JUnit会忽略带有
@Ignore
注释的测试。没有生成任何输出。我从未使用过TeamCity,但它似乎正在读取单元测试文件,并显示被忽略测试的信息。

那么,
@Ignore(“reason”)
就junit而言,只是将测试标记为正在进行,“reason”是一个人类可读的文本,用于忽略原因。根据您使用的JUnit runner的不同,测试可能会被完全跳过,也可能会被跳过并计为忽略(例如测试:x失败,y跳过,等等),或者在运行套件时,它可能会实际显示人类可读的texxt

例如,当我使用maven(通过mvn测试)运行单元测试时,我只获得跳过的(
@Ignore
注释)JUnit测试的计数,而不显示“原因”文本:

-------------------------------------------------------
 T E S T S
-------------------------------------------------------
Running service.impl.DepartmentServiceStatefulTest
Tests run: 1, Failures: 0, Errors: 0, Skipped: 1, Time elapsed: 0.1 sec
Running model.criteria.CriteriaAPITest

这个问题在JetBrains TeamCity官方论坛上得到了回答

TeamCity提供了几个自动报告测试的捆绑跑步者。 对于自定义运行程序测试,可能不会自动报告,但如果工具支持生成兼容的XML报告,TeamCity可以从此报告导入测试

要从自定义跑步者导入此类报告,您需要使用TeamCity“XML报告处理”构建功能

它的Ant JUnit解析器实际上支持与从ApacheAnt src检索的DTD匹配的报告。 它不提供关于忽略测试的任何信息。 因此,生成类似Ant JUnit的报告的工具可以自由地以不同的方式保存被忽略的测试

目前支持以下结构将测试标记为忽略(不同的工具通常使用其中一种):

  • ……
  • ……

不支持忽略原因。

也许我应该澄清一下。XML输出文件是什么样子的?您真的尝试过这个吗?如果你想要的是XML输出,为什么不创建一个被忽略的测试,你应该考虑引用你答案中的线程的显著点。一年后,这条线索可能会消失或变得很难遵循。