我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