本番コードの一部がテストによって実行されるかどうかを調べようとしているため、コード カバレッジには特別な手段が必要です。あなたが求めていることはもう少しあいまいで、はるかに簡単 (「この大きなクラスのログは記録されていますか?」) か、不可能なほど難しい (「本番環境で壊れるメソッドをログに記録しましたか?」) 可能性があります。 ?」)。
最初の質問については、シェル スクリプトをすばやく作成して作業を行うことができます。たとえば、これは Perl のスケルトンです。ここでは、SLF4J を使用しており、"LoggerFactory" のインポートを確認することは、ロガーがあると推測するのに十分な証拠であると想定しています。
while ($filename = shift) {
open my $in, "<$filename";
my $loc = 0;
my $log = "NO LOGGER";
while (<$in>) {
$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";
これをシェルから実行して、小さなプロジェクトのすべての Java ファイルを次のように実行できます。
$ find . -name \*.java -exec perl haslog.pm {} \+
これは小規模なプロジェクトでのみ機能し、かなり脆弱ですが、これをより堅牢なバージョンにするのはそれほど大変ではありません。