Рубрики
Uncategorized

Уровень

Эй, суслики! Одна из многих замечательных вещей в Go (Golang) — то, как просто провести тесты. С т … Tagged Go, тестирование, Circleci, CICD.

Эй, суслики!

Одна из многих замечательных вещей в 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»