我目前正在使用Rcov为我正在开发的rails项目获取C0代码覆盖率分析.
然而,这些结果实际上毫无意义 - 根据rcov,我有100%的覆盖率(因为它只涵盖了C0分析),而且我几乎没有为目前存在的功能写出一半的测试用例.
我已经习惯了Visual Studio 2008 Team中代码覆盖的有用结果,它具有C1覆盖率.是否有任何工具可以为ruby提供类似的覆盖范围?
目前,Ruby没有C1覆盖工具.事实上,除了RCov之外,没有任何覆盖工具.
直到最近,才有可能通过在C中修补或扩展MRI解释器来编写这样的工具.大约两年前,也可以在Java中扩展JRuby,并且实际上自上个月以来一直是RCov的端口JRuby的.然而,这需要对Ruby 和 C 的了解,以及对此的非常深入的了解,因为摆弄MRI的内部并不适合胆小的人.
但只有Rubinius才有可能编写动态分析工具,例如Ruby本身的代码覆盖工具,使得Ruby社区的更大部分可以访问工具.我希望这一点,加上工具供应商的大量财务支持(许多主要的IDE供应商正在开发或已经引入了Ruby IDE,包括CodeGear(前Borland),IntelliJ,NetBeans,Eclipse,SapphireSteel(Ruby in Steel)对于Visual Studio)甚至微软)将导致2009年Ruby工具领域的快速创新,我们将看到诸如C1,C2覆盖,NPath复杂性,更细粒度的分析等等.
在那之前,我唯一的想法就是使用Java工具.JRuby的人试图发出适当的魔术元数据,使他们生成的字节码至少可以被Java工具穿透.因此,也许可以将Java覆盖工具与JRuby一起使用.但是,我不知道这是否真的有效,也不知道它是否应该起作用.