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.
Читайте также:
- Go FAQ: Как написать юнит-тест в Go?
- Команды go: go test, тестировать пакеты
- Команды go: go build, компиляция пакетов и зависимостей
Комментариев нет:
Отправить комментарий