簡體   English   中英

從哪里開始修改 BashCov 以實現 --exclude 選項?

[英]Where to start modifying BashCov to implement --exclude option?

語境

在嘗試為--exclude構建一個/-- exclude / --ignore選項時,我在確定從哪里開始時遇到了一些困難。

Bashcov 還不支持--exclude / --ignore選項,從以下輸出可以看出: bashcov --help

bashcov --help
Usage: bashcov [options] [--] <command> [options]
Examples:
    bashcov ./script.sh
    bashcov --skip-uncovered ./script.sh
    bashcov -- ./script.sh --some --flags
    bashcov --skip-uncovered -- ./script.sh --some --flags

Specific options:
    -s, --skip-uncovered             Do not report uncovered files
    -m, --mute                       Do not print script output
        --bash-path PATH             Path to Bash executable
        --root PATH                  Project root directory
        --command-name NAME          Value to use as SimpleCov.command_name

Common options:
    -h, --help                       Show this message
        --version                    Show version

動機

Bashcov 包含與項目無關的文件和文件夾,例如.git文件夾,以及test/libs中的 bats 單元測試模塊。 這使得很難理解項目代碼本身的實際測試情況:

在此處輸入圖像描述 例如,上面的報告顯示了 17% 的覆蓋率,即使 100% 的自定義項目 bash 代碼行都經過了測試。

選項

  1. Bashcov 依賴於 simplecov,所以如果我可以修改 bashcov 以將 bashcov --exclude / --ignore命令傳遞給 simplecov,這可能就足夠了。 我發現bashcov參數在這里被解析。
  2. 如果 Bashcov 自己編譯要檢查的文件列表,我可以修改 bashcov 以僅包含那些不在--exclude / --ignore目錄/列表中的文件。 但是,我還不知道 bashcov 是否這樣做,如果是在哪里,或者它是否依賴於 simplecov 來做到這一點。

詳情選項二:

我發現這個答案顯示了如何修改SimpleCov.start行以添加過濾器/排除列表。 在 bashcov 中,可以在此處找到SimpleCov.start行,但是我還不知道如何在本地編譯、構建和安裝 bashcov(沒有從 Ubuntu 22.10 上的 `sudo apt install bashcov 獲取默認版本)。

開始修改 bashcov 以構建--exclude / --ignore函數的實際位置是什么?

不需要修改 bashcov。 --exclude / --ignore選項通過SimpleCov配置文件得到支持。 在自己項目的根目錄下,可以添加一個.simplecov文件,內容如下:

SimpleCov.start do
  minimum_coverage 15
  add_filter "test/libs"
  add_filter "/.git/"
end

這確保覆蓋率報告和結果忽略那些test/libs/.git/目錄。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM