2016-06-13 34 views
0

我有lcov -c -i -d . -o cov_init.info這行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'「或」'運算符)分隔。祝你好運。 – shellter

+0

@shellter你可以給我更多關於語法的細節。例如,爲什麼寫成像/ path1/to/exclude –

+0

'/ path1/to/exclude'等是嚴格的佔位符。你必須檢查你的'iconv'輸出,決定你想排除哪些目錄,然後組裝一個像'/ path1/... |/path2/... | ....這樣的列表''-v '選項的意思是「跳過包含搜索目標的行」(如果你喜歡,則爲負值grep)。您可能需要試驗一個小文件,以瞭解常規grep的工作方式,然後使用'grep -v srchTarg',然後使用'grep -E -v'excludeTarg1 | excludeTarg2 | ...'。然後將這些知識應用到'iconv'輸出。祝你好運。 – shellter

回答

0

如果要排除所有外部源(例如,系統/標準庫)從您的覆蓋報告,使用--no-external選項在LCOV命令,如:

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

如果您想更具體的,使用--remove選項來顯式指定應從中刪除您的跟蹤文件。語法是lcov --remove tracefile pattern1 [pattern2...] -o new_tracefile,例如:

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

注意模式被解釋爲shell模式/通配符,而不是正則表達式。

相關問題