web-dev-qa-db-ja.com

GitlabCIテストカバレッジ解析の正規表現

「CI/CDパイプライン」ページの「テストカバレッジ解析」入力で機能する正規表現を見つけるのに苦労しています。例が一貫性のない例を示していることは役に立ちません。つまり、一部のエスケープ括弧とそうでないものは、パーセント記号と同じで、$1などで明示的な結果をキャプチャします。とにかく、ここに私のテキストがあります-何ですか正規表現?

CIバッジ:

![coverage](https://gitlab.com/mycompany/master/badges/master/coverage.svg?job=coverage)

出力テキスト:

Unit test coverage:
   10.01% blocks
   10.01% lines

これまでに試しました:(単に前面または正規表現のスペースを表すためにスラッシュを追加しました)

/ \(\d+\.\d+\%\) blocks/
/ (\d+\.\d+\%) blocks/
/ (\d+\.\d+%) blocks/
/ (\d+\.\d+)% blocks/
8
Dan

便利なRuby regexWebページがあります。

http://www.rubular.com/

GitLabコードカバレッジの解析を手伝ってくれませんでした。 GitLabで正規表現の問題にバグが登録されているようです。 https://gitlab.com/gitlab-org/gitlab-ce/issues/21495

enter image description here

6
user1728363

問題は、カバレッジURLクエリ「?job = coverage」が正しくないことでした。正規表現に関しては、私は使用しました:

\W(\d+(?:\.\d+)%)\sblocks
1
Dan

この正規表現は、ブロックカバレッジを取得する必要があります。

^\s*(\d+(?:\.\d+)?%)\s*blocks

代わりにラインカバレッジを取得する場合は、次を使用します。

^\s*(\d+(?:\.\d+)?%)\s*lines

GitLabは先頭と末尾の/を自動的に追加するため、正規表現に追加する必要はありません。

今後の参考のために、GitLabはRubyで記述されているため、この正規表現をRuby over rubular.com でテストできます。

1
BrokenBinary