我on Rails项目当前的Ruby确实通过rcov(具体relevance rcov测试,我们有一个非常高的标准(我们构建失败,如果我们有< 95%的代码覆盖率)。Rcov覆盖剧烈变化与-xrefs
我们用下面的命令来测试这一点:
rcov_cmd = "rcov --rails --text-summary \
--include #{included_dirs} \
--exclude #{excluded_dirs} \
--aggregate #{coverage_dir}/coverage.data \
--output #{coverage_dir} \
今天,我发现一些代码,在rcov报告Homever登记绿色(其运行),我可以证明,这个代码是没有得到运行(我养在函数开始处有个例外,并且我的单元测试通过)
我做了一些研究,发现了rcov的--xrefs标志,我认为它会为rcov报告中的每一行添加所有调用者。
我改变了rcov命令:
rcov_cmd = "rcov --rails --text-summary --xrefs \
--include #{included_dirs} \
--exclude #{excluded_dirs} \
--aggregate #{coverage_dir}/coverage.data \
--output #{coverage_dir} \
(注意加入--xrefs
标志)。
取而代之的是额外的呼叫站点信息,我改为将测试覆盖率从96%提高到48%。
是否--xrefs改变了rcov的分析方式? (我认为它只会收集电话信息)。这与第一个命令有何不同/更好? (我见过的单元测试覆盖率下降,如果有一个失败的单元测试,我知道,如果有在运行一个错误的覆盖率会下降,但对我来说很好)
您是否试过仅使用'--callsites'并且没有'--xrefs'来确定它是否实际上包含的引起差异的callsites信息?可能会缩小问题的范围。 – Shadwell 2010-08-17 22:35:54
我更换了--xrefs和--callsites,并且在测试覆盖率上看到了同样的下降 – RyanWilcox 2010-08-18 17:14:41