2016-06-13 17 views
0

私は、ディレクトリから0の初期点からカバレッジデータをキャプチャする行lcov -c -i -d . -o cov_init.infoを持っていますが、いくつかのディレクトリを無視したいとします。私は条件文を使うことを考えていましたが、linuxを使い慣れていて、lcovに表示させたくないディレクトリに関する条件文を書く方法がわからないレポートからいくつかのディレクトリを無視するにはlcovメソッドがあります

+0

あなたは 'iconv ....のようなものを試しましたか? grep -E -v '/ path1/to/exclude |/path2/to/exclude |/path3/to/exclude | ....' '?作業のために1つのdirを取得し、次に '|'( 'grep'" OR "'演算子)で区切って追加します。がんばろう。 – shellter

+0

@shellterあなたは私に構文の詳細を教えてくれますか?例えば、/ path1/to/excludeのように書かれているのはなぜですか? –

+0

'/ path1/to/exclude'などは厳密にはplaceholderです。 'iconv'の出力を見直して、除外するディレクトリを決めてから、'/path1/... |/path2/... | .... 'のようなリストをアセンブルしなければなりません。' -v 'オプションは「検索対象を含む行をスキップする」ことを意味します(必要ならば、否定的なgrepです)。小さなファイルを試して、正規のgrepがどのように動作するかを理解する必要があります。次に 'grep -v srchTarg'、次に' grep -E -v 'excludeTarg1 | excludeTarg2 | ... 'を実行します。その知識を 'iconv'出力に適用します。がんばろう。 – shellter

答えて

0

すべての外部ソースあなたはより具体的にしたい場合は

lcov -c -i -d . --no-external -o cov_init.info 

、明示的に削除するかを指定する--removeオプションを使用します(例えば、システム/標準ライブラリ)あなたのカバレッジレポートからは、例えば、LCOVコマンドで--no-externalオプションを使用しますあなたのトレースファイル。構文は、例えば:、lcov --remove tracefile pattern1 [pattern2...] -o new_tracefileある

lcov --remove cov_init.info "/path1/to/exclude*" "/local/package/lib/*" -o cov_init2.info 

パターンがない正規表現のように、シェルのパターン/ワイルドカードとして解釈されることに注意してください。

関連する問題