2015-07-27 2 views
2

заблаговременно за помощь.Выполнение Go Tests Подчеркивание (_) вместо правильного пути

На моем Mac, когда я исполняю go test ./... правильный «путь», выводится на выходе:

ok  github.com/cnuss/server    0.008s 
ok  github.com/cnuss/server/database 0.008s 
?  github.com/cnuss/server/handlers [no test files] 
ok  github.com/cnuss/server/stats  0.014s 

Однако, когда я строю в Trusty контейнере Ubuntu 14.04, путь был замещен на «_» (подчеркивание):

ok  _/tmp/cnuss/server   0.003s 
ok  _/tmp/cnuss/server/database 0.003s 
?  _/tmp/cnuss/server/handlers [no test files] 
ok  _/tmp/cnuss/server/stats 0.008s 

изменение пути также находит свое отражение в -coverprofile выходной файл, который в свою очередь влияет на некоторые из инструментов покрытия, которые я использую.

Вопрос в том, что влияет на путь, который разрешен при выполнении go test? Поведение на моей Mac-книге - правильное поведение.

+1

Какая версия идет по каждому из них? – JimB

ответ

2

У вас, вероятно, нет GOPATH в вашей Linux-среде.

Если я создаю файл src/foo/foo.go в текущем каталоге с содержимым package foo, я вижу разницу:

$ unset GOPATH 
$ go test ./src/foo 
?  _/home/james/.../src/foo [no test files] 
$ export GOPATH=`pwd` 
$ go test ./src/foo 
?  foo [no test files] 

Без GOPATH набора (или с пакетом вне GOPATH), он действует, как если бы это относительный импорт.

+0

Так оно и было, спасибо! GOPATH был установлен неправильно в среде Linux. –

Смежные вопросы