У меня есть проект с двоичным файлом, точка входа которого находится в ./cmd/<my-project>/main.go
.Я добавил эталонный тест в ./cmd/<my-project>/main_test.go
.
. Теперь я хочу выполнить этот эталонный тест из корня хранилища.Я пытался выполнить что-то вроде go test -bench=./cmd/<my-project>/main
в различных вариантах (например, go test -bench=./cmd/<my-project>/main_test.go
или go test -bench=./cmd/<my-project>
), но я не смог заставить его работать.
Ошибка, которую я всегда получаю:
can't load package: package github.com/<username>/<my-project>: no Go files in /home/<user>/go/src/github.com/<username>/<my-project>
и это правда, у меня нет файлов *.go
в корне моего проекта.
Все, что я придумал, - это сначала перейти в каталог и запуститьбенчмарк с `go test -bench =.
Однако, поскольку моя программа зависит от текущего рабочего каталога, а результат сильно зависит от того, было бы здорово иметь возможность выполнить ее в другом каталоге, чем cmd/<my-project>
один.(Если это хорошо или нет, это не часть вопроса:))
Обновление после первого комментария:
Я запускаю его с go test -bench=. /cmd/<my-project>
но бенчмарк get выполняется так, как если бы он выполнялся в каталоге ./cmd/<my-project>
.Я заметил похожее поведение в «обычных тестах» - но это не было проблемой для меня в любое время.
Итак, моя программа сканирует текущий каталог на наличие файловых каталогов в зависимости от текущего рабочего каталога,это приводит только к двум найденным файлам (main.go
и main_test.go
), где тест не очень полезен.