2015-11-02 2 views
0

Я пытаюсь запустить мои Go тесты, как это, установив переменную окружения:Установить переменную среды для Go тестирует

FOO=BAR go list ./... | grep -v vendor | xargs -n1 go test -timeout=3s 

Внутри моих тестов я:

log.Print(os.Getenv("FOO")) 

который возвращает пустую строку , Почему FOO не установлен?

ответ

4
FOO=BAR bash -c 'go list ./... | grep -v vendor | xargs -n1 go test -timeout=3s' 

Хорошее объяснение, почему оригинальная команда не работает, можно найти в ответе на вопрос: https://unix.stackexchange.com/questions/134735/environment-variables-are-not-set-when-my-function-is-called-in-a-pipeline

+0

О, спасибо. Это работает. Теперь я чувствую себя глупо. –

+0

Ум, чтобы объяснить это немного? ;) –

+0

http://unix.stackexchange.com/questions/134735/environment-variables-are-not-set-when-my-function-is-called-in-a-pipeline – kostya

2

Это не как установка переменных для труб работает. См .:

FOO=BAR echo "AAA" | FOO=WAZ printenv | grep FOO 
Смежные вопросы