Следуя путям, которые я мог решить эту потребность.
Исключая dirs / pkgs
Поскольку для запуска теста и создания обложки вы указываете pkgs, где команда go test должна искать файлы из этого pkg, автоматически игнорируется. По примеру
project
|_______/pkg/web/app
|_______/pkg/web/mock -> It will be ignored.
# Command:
$go test -failfast -tags=integration -coverprofile=coverage.out -covermode=count github.com/aerogear/mobile-security-service/pkg/web/apps
Однако его нельзя применять во всех случаях. Например, в случае, когда файлы являются подпрограммами макета ваших интерфейсов, это может работать не очень хорошо, потому что импорт, который требуется в службу, тестирование и макет, вероятно, будет выполняться циклично, и это недопустимо.
Используя "_test" в определениях имен
Если вы хотите игнорировать файлы, которые используются в тестах, имеет смысл использовать _test
в конце имени. Например, my_service_mock_test.go
. Файлы с _test
в конце имени будут игнорироваться по умолчанию.
Сняв с обложки файл следующим образом
go test . -coverprofile cover.out.tmp
cat cover.out.tmp | grep -v "_generated.go" > cover.out
tool cover -func cover.out
PS .: Я не смог найти комментарий или тег, который бы исключил их.