【问题标题】:Grails, Hudson, and Cobertura, which tests are covering my code?Grails、Hudson 和 Cobertura,哪些测试涵盖了我的代码?
【发布时间】:2011-08-22 16:56:24
【问题描述】:
我刚开始研究一个现有的 grails 项目,其中编写了很多代码,而测试涵盖的内容不多。该项目使用 Hudson 和 Cobertura 插件,这很好。当我经历一些事情时,我注意到即使没有为代码编写特定的测试类,它也被覆盖了。有什么简单的方法可以查看哪些测试覆盖了代码?如果我能够知道这些信息,那将节省我一点时间。
谢谢
【问题讨论】:
标签:
testing
grails
hudson
code-coverage
cobertura
【解决方案1】:
您要做的是收集每个测试的测试覆盖率数据。然后,当某个代码块没有被测试执行时,您可以将其追溯到测试。
您需要一个测试覆盖率工具来做到这一点; AFAIK,这很容易组织。只需运行一项测试并收集测试覆盖率数据。
但是,大多数人也想知道,在给定所有测试的情况下,应用程序的覆盖范围是多少?您可以运行测试两次,一次是为了获取 what-does-this-test-cover 信息,然后是整个批次以获取 what-does-the-batch-cover。一些工具 (ours included) 可以让您结合各个测试的覆盖率,为集合生成覆盖率,因此您不必运行两次。
我们的工具有一个很好的附加功能:如果您收集特定于测试的覆盖率,当您修改代码时,该工具可以告诉您哪些单独的测试需要重新运行。为此,您需要编写一些简单的脚本,以便将更改源的检测数据的结果与每个测试的结果进行比较。