@Ignore对JUnit XML输出做了什么?

时间:2011-11-16 19:52:45

标签: java junit

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

4 个答案:

答案 0 :(得分:2)

官方JetBrains TeamCity公共论坛http://devnet.jetbrains.net/message/5442048

回答了这个问题

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

要从自定义运行器导入此类报告,您需要使用TeamCity“XML报告处理”构建功能。

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

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

  • ...<testcase executed="false"...>...
  • ...<testcase...> <skipped/></testcase>...
  • ...<testcase status="ignored"...>...

不支持忽略理由。

答案 1 :(得分:1)

@Ignore("reason")只是将测试标记为关于junit的问题,而“原因”是一个人为可读的文本,用于忽略原因。根据您使用的JUnit运行器,可能只是完全跳过测试,可能会跳过测试并将其视为忽略(例如测试:x失败,跳过等等),或者在运行时可能实际显示人类可读的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

答案 2 :(得分:0)

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

答案 3 :(得分:0)

似乎状态正在通过build messages