Покрытие Go для нескольких пакетов и значок покрытия Gitlab

Я пытаюсь отобразить точный значок покрытия для моего проекта gitlab.

Дело в том, что у меня несколько пакетов, в gitlab-ci.yml я запускаю

go test $(go list ./… | grep -v /vendor/) -v -coverprofile .testCoverage.txt

и мой результат выглядит примерно так:

$ go test -coverprofile=coverage.txt -covermode=atomic ./… ok gitlab.com/[MASKED]/pam 10.333s coverage: 17.2% of statements ok gitlab.com/[MASKED]/pam/acquisition 0.004s coverage: 57.7% of statements ok gitlab.com/[MASKED]/pam/acquisition/api 0.005s coverage: 72.1% of statements ok gitlab.com/[MASKED]/pam/acquisition/ftp 24.936s coverage: 73.1% of statements ok gitlab.com/[MASKED]/pam/repartition 0.004s coverage: 90.1% of statements

И мое регулярное выражение разбора тестового покрытия в Gitlab:

^coverage:s(d+(?:.d+)?%)

Если я проверю .testCoverage, я получаю много таких строк:

gitlab.com/[MASKED]/pam/repartition/repartition.go:54.33,56.5 1 1

Итак, это дает мне результат 90.1%, когда это только покрытие последнего пакета.

Как я должен это делать ?

Источник: ledsshop.ru

Стиль жизни - Здоровье!