суббота, 13 июля 2019 г.

Команда cover в Golang

cover - это программа для анализа профилей покрытия, сгенерированных с помощью 'go test -coverprofile=cover.out'.

cover также используется 'go test -cover', чтобы переписать исходный код с аннотациями, чтобы отслеживать, какие части каждой функции выполняются. Он работает с одним исходным файлом Go за раз, вычисляя приблизительную базовую информацию блока, изучая источник. Таким образом, он более переносим, чем инструменты покрытия с бинарным переписыванием, но также немного менее способен. Например, он не проверяет внутри && и || выражений, и может быть слегка запутан единичными утверждениями с несколькими функциональными литералами.

При вычислении покрытия пакета, в котором используется cgo, инструмент вывода должен применяться к выходным данным предварительной обработки cgo, а не к входным данным, поскольку cover удаляет комментарии, важные для cgo.

Для информации об использовании, смотрите:

go help testflag
go tool cover -help

go tool cover

Использование go tool cover:

Учитывать профиль покрытия, созданный в 'go test':

go test -coverprofile=c.out


Открыть веб-браузер с аннотированным исходным кодом:

go tool cover -html=c.out


Записать файл HTML вместо запуска веб-браузера:

go tool cover -html=c.out -o coverage.html


Отобразить процент покрытия на стандартный вывод для каждой функции:

go tool cover -func=c.out


Наконец, для генерации модифицированного исходного кода с аннотациями покрытия (что делает go test -cover):

go tool cover -mode=set -var=CoverageVariableName program.go


Флаги:

-V 
  напечатать версию и выйти
-func string
  вывод информации о профиле покрытия для каждой функции
-html string
  генерировать HTML-представление профиля покрытия
-mode string
  режим покрытия: set, count, atomic
-o string
  файл для вывода; по умолчанию: stdout
-var string
  имя создаваемой переменной покрытия 
  (по умолчанию "GoCover")

Одновременно может быть установлен только один из -html, -func или -mode.


Читайте также:


Комментариев нет:

Отправить комментарий