代碼覆寫需要特殊的工具,因為您試圖找出是否通過任何測試執行了一條生産代碼.你要問的是更模糊一些,可能要容易得多(“這個大類的日志記錄是什麼?”)或者更難以實作(“我們是否記錄了生産中斷的方法” ?“).
對于第一個問題,你可以很快地編寫一個shell腳本來完成這項工作.例如,這是Perl中的骨架.在這裡,我假設我們正在使用SLF4J并且看到“LoggerFactory”的導入足以證明有一個記錄器.
while ($filename = shift) {
open my $in, "
my $loc = 0;
my $log = "NO LOGGER";
while () {
$loc++;
if (m/import org.slf4j.LoggerFactory/) {
$log = "has logger";
}
}
print "$filename : $loc LOC $log\n";
$total{$log} += $loc;
}
print "\n\nTOTAL LOGGED: $total{'has logger'}\nTOTAL UNLOGGED: $total{'NO LOGGER'}\n";
我可以從我的shell運作它來運作一個小項目中的所有Java檔案
$find . -name \*.java -exec perl haslog.pm {} \+
這僅适用于小型項目,而且相當脆弱,但制作更強大的版本并不是一件容易的事.