Java 删除冗余的JUnitTestSuite测试

Java 删除冗余的JUnitTestSuite测试,java,junit,performance,Java,Junit,Performance,在我们的JUnit测试套件中,我发现了一些没有提高覆盖率的测试,因此应该删除这些测试(它们需要时间,但不会真正增加测试套件的价值) 我想知道有什么工具可以为我发现冗余测试?几个月前,我使用了Eclipse插件。它可以显示每行代码执行的次数,并在单元测试后突出显示。我认为三叶草在这一点上可以帮助你。 我会认为这是误码覆盖率的度量。仅仅因为一个测试没有增加度量,它不一定是冗余的——它可以测试一个特定的执行路径,该路径由几个其他测试一起覆盖的LOC组成,但表示其他测试都没有覆盖的行为。请记住:代码行为

在我们的JUnit测试套件中,我发现了一些没有提高覆盖率的测试,因此应该删除这些测试(它们需要时间,但不会真正增加测试套件的价值)


我想知道有什么工具可以为我发现冗余测试?

几个月前,我使用了Eclipse插件。它可以显示每行代码执行的次数,并在单元测试后突出显示。我认为三叶草在这一点上可以帮助你。

我会认为这是误码覆盖率的度量。仅仅因为一个测试没有增加度量,它不一定是冗余的——它可以测试一个特定的执行路径,该路径由几个其他测试一起覆盖的LOC组成,但表示其他测试都没有覆盖的行为。请记住:代码行为在很大程度上受状态的影响,但我所知道的测试覆盖率工具并没有测量状态空间的覆盖率


除非测试套件的运行时是一个严重的问题,否则您可以利用时间做比消除可能的冗余测试更好的事情。

这不是我的重点:)我在开发过程中使用Hudson上的Cobertura和IntelliJ自己的覆盖工具。后者还显示每条线经过的次数。但不是来自哪个测试!我想知道哪些测试不能增加更好的覆盖率,因为我不是孤独症患者,我自己也记不起测试套件通过代码库中每一行的次数。明白。我希望Clover在这几个月里增加了一个非常新的功能:)我倾向于同意你的观点(可能是误用了覆盖率指标)。但也有其他指标,所以我认为应该更广泛地处理这个问题,并研究更多的标准指标,比如条件的数量。