Команда go test
охватывает *_test.go
файлы только в одном каталоге.
Мне нужен go test
весь проект, а это значит, что тест должен охватывать все *_test.go
файлы в каталоге ./
и все дочерние деревья в каталоге ./
.
Какая команда для этого?
Ответы:
Это должно запустить все тесты в текущем каталоге и во всех его подкаталогах:
$ go test ./...
Это должно запустить все тесты для заданных конкретных каталогов:
$ go test ./tests/... ./unit-tests/... ./my-packages/...
Это должно запустить все тесты с префиксом пути импорта foo/
:
$ go test foo/...
Это должно запустить все пути импорта тестов с префиксом foo
:
$ go test foo...
Это должно запустить все тесты в вашем $ GOPATH:
$ go test ...
go: warning: "subdir/..." matched no packages
go test ./...
действительно отличная команда !. Спасибо за помощь :)
Начиная с Go 1.9 и далее используйте
go test ./...
В Go с 1.6 по 1.8 каталог./...
также соответствовал . Чтобы пропустить поставленные пакеты, вы должны использоватьvendor
go test $(go list ./... | grep -v /vendor/)
Источники: https://github.com/golang/go/issues/11659 , https://github.com/golang/go/issues/14417 , https://github.com/go-lang-plugin-org/ go-lang-idea-plugin / issues / 2366 , комментарий @ nickgrim.
Структура папки
ProjectName/folderName1/file_test.go
ProjectName/folderName2/file1_test.go
ProjectName/folderName3/file2_test.go
команда go test Команда
ProjectName$ go test -v ./...
ProjectName$ go test ./...
ProjectName$ go test -cover ./...
Отчет об охвате для всего проекта
ok ProjectName/folderName1 10%
ok ProjectName/folerName2 90%
ok ProjectName/folerName2 85%
...
в последнем примере должны бытьgo test \...