那里有一个程序可以让我找到所有被忽略的junits吗?
我的意思是,我已经看到使用@Ignore的单元测试和使用ignore_testFoo()
或xtestBar()
或xxtestBar1()
等方法名称的测试,这些都被忽略了,它们非常有时很难找到。
我可以为这些情况而烦恼,但我想知道是否有一个应用程序可以自动找到这些情况。
我尝试使用cobertura来获取junits的覆盖范围,看看哪些方法正在执行,哪些方法没有被执行,并且分开了坏的单元测试。
我只是想知道是否有一个程序或其他方法来获取这些信息而不会破坏某些内容。
答案 0 :(得分:3)
静态分析工具可以为您提供良好的服务。 Checkstyle是一个不错的选择,它有很长的modules列表,最坏的情况是你可以轻松编写自己的模块来验证你需要的任何编码约定。
您将为其找到或创建模块,然后执行以查找任何不符合规范的代码。
修改强> 的 PMD看起来是处理这项任务的绝佳选择。它实际上已经内置了set of JUnit rules,它很容易组合规则或创建新规则。
答案 1 :(得分:1)
通过grep对java测试文件使用junit3检测忽略的测试应该很容易。查找匹配测试和括号的所有行,但使用不以测试开头的方法名称。
对于junit4,你可以 *通过扩展默认测试运行器来实现自己的测试运行器,打印出忽略的测试 *构建一个加载测试类的小应用程序,通过内省获取所有声明的方法,打印掉那些被忽略的标记。
可能有一个工具可以做到这一点,甚至可能已经有一些跑步者已经做过,但实际上如果真的需要它们,可能需要几个小时从头开始使用这些工具。