Есть ли способ получить аргументы командной строки в go "tests",
Когда вы вызываете go test
, очевидно, ваш main
не запускается, так что есть способ обработать аргументы командной строки,
Один из способов - использовать пакеты flags
и проверить аргументы командной строки в каждом тестируемом или тестируемом объекте, но это не идеально для того, что вам нужно делать это во многих местах, в отличие от как вы это делаете в main
при запуске приложения.
РЕДАКТИРОВАТЬ: в основном, для нисходящих избирателей, я полагаю, вы пытаетесь решить вопрос, потому что считаете, что это неправильно, и против чистоты модульных тестов,
- не все тесты являются модульными тестами
- очень функционально не полагаться на переменные "ENV" и фактически передавать материал в качестве аргументов в командной строке,
- просьба высказать свое мнение в ответах, чтобы будущие поколения могли извлечь выгоду,
EDIT 2: для записи я положил функцию init()
в один из моих файлов _test
и установил переменную, установленную с помощью флагов, когда main вызывается таким образом.