0
我有lcov -c -i -d . -o cov_init.info
這行lcov -c -i -d . -o cov_init.info
從一個目錄中的初始零點捕獲覆蓋數據,但我希望它忽略一些目錄。我正在考慮使用條件語句,但我對使用linux並不確定如何寫關於我不希望lcov顯示的目錄的條件語句有沒有一種方法lcov忽略報告中的一些目錄
我有lcov -c -i -d . -o cov_init.info
這行lcov -c -i -d . -o cov_init.info
從一個目錄中的初始零點捕獲覆蓋數據,但我希望它忽略一些目錄。我正在考慮使用條件語句,但我對使用linux並不確定如何寫關於我不希望lcov顯示的目錄的條件語句有沒有一種方法lcov忽略報告中的一些目錄
如果要排除所有外部源(例如,系統/標準庫)從您的覆蓋報告,使用--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模式/通配符,而不是正則表達式。
你有沒有試過類似'iconv .... | grep -E -v'/ path1/to/exclude |/path2/to/exclude |/path3/to/exclude | ....''?獲得1個dir的工作,然後添加更多,用'|'('grep'「或」'運算符)分隔。祝你好運。 – shellter
@shellter你可以給我更多關於語法的細節。例如,爲什麼寫成像/ path1/to/exclude –
'/ path1/to/exclude'等是嚴格的佔位符。你必須檢查你的'iconv'輸出,決定你想排除哪些目錄,然後組裝一個像'/ path1/... |/path2/... | ....這樣的列表''-v '選項的意思是「跳過包含搜索目標的行」(如果你喜歡,則爲負值grep)。您可能需要試驗一個小文件,以瞭解常規grep的工作方式,然後使用'grep -v srchTarg',然後使用'grep -E -v'excludeTarg1 | excludeTarg2 | ...'。然後將這些知識應用到'iconv'輸出。祝你好運。 – shellter