Как "протестировать" все тесты в моем проекте?
Команда go test
охватывает *_test.go
файлы только в одном каталоге.
Я хочу go test
весь проект, что означает, что тест должен охватывать все *_test.go
файлы в каталоге ./
и каждый каталог дерева chindren в каталоге ./
.
Какая команда для этого?
Ответы
Ответ 1
Это должно запускать все тесты в текущем каталоге и во всех его подкаталогах:
$ go test ./...
Это должно запускать все тесты с пути импорта с префиксом foo/
:
$ go test foo/...
Это должно запустить все пути импорта пробных префиксов с foo
:
$ go test foo...
Это должно запускать все тесты в вашем $GOPATH:
$ go test ...
Ответ 2
Начиная с версии 1.9,, используйте
go test ./...
В Go 1.6 до 1.8, ./...
соответствует также vendor
directory. Чтобы пропустить пакеты с поставщиками, вы должны использовать
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.