2017-02-24 12 views
2

デフォルトでは、kcovには、コードカバレッジの結果に、テスト関数を含むすべてのソースファイルが含まれています。これは、報告されたカバレッジ率を歪ませます。テスト機能を除外するようkcovに指示するにはどうすればよいですか?例えばkcovを使用しているときに、コードカバレッジからテスト関数を除外するにはどうすればよいですか?

#[test] 
fn foo() { 
    ... 
} 

kcovはfooのカバレッジデータを報告し、私はそれを除外したいです。 (あなたがfoo_test.rsにfoo.rsのためのすべてのテストを移動した場合)

+0

どのようにkcovを起動しているかについての詳細情報を提供してください。 –

答えて

5

は異なるファイルにあなたのテストコードを持って、kcov引数を使用--exclude-path=./test(統合テストの場合)または--exclude-pattern=_test.rs

もう一つの方法は、kcov引数--exclude-region='#[cfg(test)]:#[cfg(testkcovstopmarker)]'を使用して、それがrustcを作るためにした後、各ファイルのどちらかだけが、次の最後にテストしていない非テストコードを持っているか、必要に応じて未使用の定義にストップマーカー#[cfg(testkcovstopmarker)]を追加することを確認することですハッピー。 (kcovは、行内の任意の領域の開始および終了文字列を検索します)

(含まれる文字列に基づいて行を除外する可能性もありますが、これはRustでのテストの除外には使用できません)。

関連する問題