Java 查找@Ignore';d目前通过的测试

Java 查找@Ignore';d目前通过的测试,java,gradle,junit,ant,junit4,Java,Gradle,Junit,Ant,Junit4,对于一个开发人员来来往往的规模相当大的开放源码项目,有人可能会修复一个bug,而不会意识到之前有人犯了一个禁用的单元测试(la@Ignore)。我们希望找到被禁用的通过测试,以便我们能够启用它们并更新bug跟踪器、CC列表以及下游的任何其他内容 偶尔运行所有@Ignore'd测试并确定现在通过的测试的最佳方法是什么?我们正在JUnit4中使用Java1.6,使用ant构建我们的项目,并过渡到gradle。我们用詹金斯做CI 一些想法: 用条件忽略永久替换所有@Ignore注释 运行一个自定义J

对于一个开发人员来来往往的规模相当大的开放源码项目,有人可能会修复一个bug,而不会意识到之前有人犯了一个禁用的单元测试(la@Ignore)。我们希望找到被禁用的通过测试,以便我们能够启用它们并更新bug跟踪器、CC列表以及下游的任何其他内容

偶尔运行所有@Ignore'd测试并确定现在通过的测试的最佳方法是什么?我们正在JUnit4中使用Java1.6,使用ant构建我们的项目,并过渡到gradle。我们用詹金斯做CI

一些想法:

  • 用条件忽略永久替换所有@Ignore注释

  • 运行一个自定义JUnit4类运行程序,该运行程序更改@Ignore的行为。

  • 暂时注释掉所有@Ignore注释,以便它们运行。然而,我们需要一种否定失败的方法


  • 对不起,这不是一个解决方案,而是另一个对我有效的替代方案: 我的重点是不要修改现有的(1000个)单元测试。因此,没有广泛的代码更改。没有新的注释,当然不是暂时的

    我所做的是重写JUnit@Ignore检测,并通过类路径前缀使其有条件:如果该测试/类被列出或禁用,请检入一个单独的控制文件。这是基于包/FQCN/方法名和Regexp模式的。如果覆盖了,即使在原始JUNit测试源中仍然有@Ignore,也要运行它


    记录结果,修改控制文件。冲洗并重复。

    感谢您对本主题的精彩概述。