У меня есть проект Go, который использует модули.Модуль содержит много пакетов, которые являются вложенными.
Когда я позволяю Go выяснить структуру пакета, передав ./...
в go test
, он запускает тесты параллельно (поведение по умолчанию).
Тестирование отдельного пакета с флагом -failfast
работает, оно останавливается при первом сбое, однако я хотел бы добиться использования -failfast
во всех пакетах вместе (для увеличения пропускной способности CI / CD).Когда первый тест в одном из пакетов, которые тестируются параллельно одним вызовом go test ./...
, завершается неудачно, я бы хотел остановить весь набор тестов.
Возможно ли это даже в текущей версиипройти тестирование утилиты?Если нет, то, возможно, есть план реализовать такую вещь в будущем?
Я не нашел решения, которое позволило бы мне делать это параллельно, однако одна вещь, о которой я подумал, это объединить что-тонапример, go test -failfast
, go list ./...
и xargs
и запускать тесты в последовательности (не параллельно).Я бы проверил вывод последнего протестированного пакета и остановил бы все при первом сбое.Хотя это звучит не очень хорошо и, вероятно, будет немного медленнее.
Так что, да, есть какие-то существующие решения или подходы, которые я не нашел / не подумал?
Спасибо!
go version go1.12 darwin/amd64