Статьи

Сборка и тестирование идут с GoClipse, Drone.io и Coveralls

В  предыдущей статье я показал создание тестов на основе таблиц в Go. Затем я добавил  еще одну статью,  чтобы охватить условия ошибок тестирования. Теперь, когда у нас есть тесты, которые охватывают все случаи, мы заслуживаем того, чтобы получить некоторые зеленые значки в нашем репозитории GitHub.

Чтобы проиллюстрировать эти статьи на простом примере, я разместил  репозиторий на GitHub,  который преобразует римские цифры в строковой форме в числовой эквивалент. Я добавил поддержку сборки с использованием  drone.io  и покрытие кода с помощью  Coveralls .

Прежде чем попасть туда, стоит отметить, что Go имеет встроенную поддержку для тестирования покрытия кода. Вот команды для получения хранилища кода и запуска его тестов в подробном режиме с включенным покрытием кода:

go get github.com/alanhohn/roman
go test -v --cover github.com/alanhohn/roman

Это дает следующий вывод:

=== RUN   TestValid
--- PASS: TestValid (0.00s)
=== RUN   TestInvalid
--- PASS: TestInvalid (0.00s)
PASS
coverage: 100.0% of statements
ok      github.com/alanhohn/roman   0.009s

Я использую  GoClipse , так как я уже знаком с Eclipse из Java. Он построен на инструментах разработки Eclipse C / C ++ и может быть сконфигурирован без особых усилий для отладки исходного кода, хотя в основном он мне нравится для завершения кода и знакомого сочетания клавиш, которое запускается  gofmt.

Поскольку компиляция и тестирование в Go выполняются очень быстро, я настраиваю GoClipse для запуска тестов с покрытием кода при каждом сохранении. Это означает, что я получаю мгновенную обратную связь не только об ошибках компиляции, но также и о том, сломал ли я модульные тесты и как я справляюсь с освещением. Вот как это выглядит: