Эй, суслики!
Одна из многих замечательных вещей в Go (Golang) — то, как просто провести тесты. С Изменения, которые мы видели в GO v1.11 , запущенные тесты так же просто, как:
# To test only your current module go test ./... # To test your module as well as its direct and indirect dependencies go test all
В этом посте я собираюсь показать вам, как мы можем сделать вывод Перейти тест
Более полезен как для местного развития, так и для Circleci.
Gotestsum
Gotestsum
это CLI Инструмент написан в Go, который работает Перейти тест
для тебя. Это улучшает выход, делая его намного более вкусным. Как описано на его GitHub Repository , он «запускает тесты и печатает дружеские результаты тестов и сводку тестового прогона».
Вот как это выглядит:
Это довольно круто для локальной разработки, но как насчет его использования для непрерывной интеграции ( ci )?
Поддержка Circleci/Junit
Большинство поставщиков CI поддерживают результаты сохранения тестов в формате JUNIT. То, что поставщик CI делает с ним, может варьироваться, но это обычно означает доступ к историческим тестовым данным, классным диаграммам и графам и т. Д. Circleci поддерживает Сбор метаданных испытаний Пока это в формате Юнита. С тех пор Перейти тест
Не выводит в формате JUNIT Назнаменовано, мы будем использовать Gotestsum
сделать это для нас.
gotestsum --junitfile unit-tests.xml
Приведенная выше команда выведет результаты испытаний в формате JUNIT. Затем вы можете сообщить Circleci использовать этот файл в качестве тестовых метаданных через ваш circleci config.xml
файл.
- store_test_results: path: /tmp/test-results
Установка Gotestsum
Требования
- Go v1.10 или позже
Установка локально
Как и в большинстве приложений GO, запуск Gotestsum
Может быть так же просто, как размещение бинарного на вашем $ Path
:
curl -sSL "https://github.com/gotestyourself/gotestsum/releases/download/v0.3.1/gotestsum_0.3.1_linux_amd64.tar.gz" | sudo tar -xz -C /usr/local/bin gotestsum
Приведенная выше команда устанавливает v0.3.1 из Gotestsum
, самая последняя версия на сегодняшний день. Если доступна новая версия, обновите номер версии в URL. Вы также можете заменить Linux
в URL с Дарвин
Для пользователей MacOS. Доступные двоичные пакеты представлены для 64-битных систем x86. Смотрите следующий раздел, чтобы скомпилировать свой собственный.
Скомпилирование бинарного
Если у вас есть 32-битная система, рука или какая-то другая потребность, вот как компилировать и установить нестандартный двоичный файл:
go get -u gotest.tools/gotestsum
Установка на Circleci
Если вы используете Голанг Circleci Docker Commonience Image ( circleci/golang
) Затем поздравляю, Gotestsum
уже предварительно установлен для вас! Если нет, я бы посоветовал следовать Установка локально Инструкции и применение этого к вашему Circleci config.yml
файл или, для пользовательского изображения, в DockerFile.
Gotestsum
это проект, поддерживаемый Даниэль Нефин , инженер в Circleci.
Оригинал: «https://dev.to/circleci/level-up-go-test-with-gotestsum-4p0b»