我刚刚开始处理现有的 grails 项目,其中编写了大量代码,但测试覆盖的代码不多。该项目使用带有 Cobertura 插件的 Hudson,这很好。当我经历这些事情时,我注意到即使没有为代码编写的特定测试类,它也被覆盖了。有什么简单的方法可以查看哪些测试覆盖了代码?如果我能够知道这些信息,那会为我节省一些时间。 谢谢
最佳答案
您要做的是收集每个测试的测试覆盖率数据。然后,当测试未执行某些代码块时,您可以将其追溯到测试。
您需要一个测试覆盖工具来完成这项工作; AFAIK,这很容易组织。只需运行一项测试并收集测试覆盖率数据。
但是,大多数人还想知道,在所有 测试的情况下,应用程序的覆盖范围是多少?您可以运行测试两次,一次获取此测试涵盖的内容信息,然后整个批处理获取该批处理涵盖的内容。一些工具 (ours included) 可以让您合并来自各个测试的覆盖范围,以生成集合的覆盖范围,因此您不必运行它们两次。
我们的工具有一个很好的额外功能:如果您收集特定于测试的覆盖率,当您修改代码时,该工具可以告诉您哪些单独的测试需要重新运行。为此,您需要一些简单的脚本,以将更改源的检测数据结果与每个测试的结果进行比较。
关于testing - Grails、Hudson 和 Cobertura,哪些测试覆盖了我的代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5954466/