В предыдущей статье я показал создание тестов на основе таблиц в 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 для запуска тестов с покрытием кода при каждом сохранении. Это означает, что я получаю мгновенную обратную связь не только об ошибках компиляции, но также и о том, сломал ли я модульные тесты и как я справляюсь с освещением. Вот как это выглядит: