gpt4 book ai didi

ruby-on-rails - Rcov 覆盖率随 -xrefs 发生巨大变化

转载 作者:数据小太阳 更新时间:2023-10-29 06:44:37 27 4
gpt4 key购买 nike

我当前的 Ruby on Rails 项目通过 rcov(具体来说,relevance rcov)进行测试,我们有相当高的标准(如果我们的代码覆盖率 < 95%,则构建失败)。

我们使用下面的命令来测试:

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 的分析类型吗? (我认为它只会收集调用站点信息)。这与第一个命令有何不同/更好?(我已经看到如果单元测试失败,单元测试覆盖率会下降,而且我知道如果运行中出现错误,覆盖率百分比会下降,但对我来说这看起来不错)

最佳答案

来自 rcov manual :

--[no-]callsites
Show callsites in generated XHTML report. (somewhat slower; disabled by default)
--[no-]xrefs
Generate fully cross-referenced report. (includes --callsites)

来自 Rcov CallSiteAnalyzer Class

A CallSiteAnalyzer can be used to obtain information about:

* where a method is defined ("defsite")
* where a method was called from ("callsite")

使用此分析 rcov 可以提供更准确的覆盖信息,以延长执行时间。

关于ruby-on-rails - Rcov 覆盖率随 -xrefs 发生巨大变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3445767/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com