1

我刚开始研究一个现有的 grails 项目,其中编写了很多代码,但测试涵盖的内容不多。该项目使用 Hudson 和 Cobertura 插件,这很好。当我经历一些事情时,我注意到即使没有为代码编写特定的测试类,它也被覆盖了。有什么简单的方法可以查看哪些测试覆盖了代码?如果我能够知道这些信息,那将节省我一点时间。谢谢

4

1 回答 1

0

您要做的是收集每个测试的测试覆盖率数据。然后,当某个代码块没有被测试执行时,您可以将其追溯到测试。

您需要一个测试覆盖率工具来做到这一点;AFAIK,这很容易组织。只需运行一项测试并收集测试覆盖率数据。

但是,大多数人也想知道,给定所有测试的应用程序覆盖率是多少?您可以运行测试两次,一次是为了获取what-does-this-test-cover 信息,然后是整个批次以获取what-does-the-batch-cover。一些工具(包括我们的)可以让您结合各个测试的覆盖范围,为集合生成覆盖范围,因此您不必运行它们两次。

我们的工具有一个很好的附加功能:如果您收集特定于测试的覆盖率,当您修改代码时,该工具可以告诉您哪些单独的测试需要重新运行。为此,您需要一些简单的脚本,以便将更改源的检测数据的结果与每个测试的结果进行比较。

于 2011-05-11T04:47:48.740 回答