Команда 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 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.
источник
./...
больше не соответствует./vendor/
каталогу, поэтому вы можете запускать все свои тесты и ни один из тестов поставщика с помощьюgo test ./...
ProjectName/folderName1/file_test.go ProjectName/folderName2/file1_test.go ProjectName/folderName3/file2_test.go
ProjectName$ go test -v ./... ProjectName$ go test ./... ProjectName$ go test -cover ./...
ok ProjectName/folderName1 10% ok ProjectName/folerName2 90% ok ProjectName/folerName2 85%
источник