Существует ли изящный способ быстрого параллельного запуска тестов модуля Go с вложенными пакетами? - PullRequest
0 голосов
/ 24 мая 2019

У меня есть проект Go, который использует модули.Модуль содержит много пакетов, которые являются вложенными.

Когда я позволяю Go выяснить структуру пакета, передав ./... в go test, он запускает тесты параллельно (поведение по умолчанию).

Тестирование отдельного пакета с флагом -failfast работает, оно останавливается при первом сбое, однако я хотел бы добиться использования -failfast во всех пакетах вместе (для увеличения пропускной способности CI / CD).Когда первый тест в одном из пакетов, которые тестируются параллельно одним вызовом go test ./..., завершается неудачно, я бы хотел остановить весь набор тестов.

Возможно ли это даже в текущей версиипройти тестирование утилиты?Если нет, то, возможно, есть план реализовать такую ​​вещь в будущем?

Я не нашел решения, которое позволило бы мне делать это параллельно, однако одна вещь, о которой я подумал, это объединить что-тонапример, go test -failfast, go list ./... и xargs и запускать тесты в последовательности (не параллельно).Я бы проверил вывод последнего протестированного пакета и остановил бы все при первом сбое.Хотя это звучит не очень хорошо и, вероятно, будет немного медленнее.

Так что, да, есть какие-то существующие решения или подходы, которые я не нашел / не подумал?

Спасибо!

go version go1.12 darwin/amd64

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...