Codeclimate тестовый форматер для Golang
Нигде в Codeclimate docs не написано, как указать форматирование покрытия. Но когда я пытаюсь отправить покрытие в Codeclimate:
./cc-test-reporter before-build
./cc-test-reporter after-build
Это терпит неудачу:
Ошибка: не удалось найти какой-либо жизнеспособный форматер. доступные форматеры: simplecov, lcov, cover.py, клевер, gocov, gcov, cobertura, jacoco
я имею gocov
установлены. Также я сгенерировал отчет с goconv
:
gocov test -coverprofile=out
И я попытался указать файл отчета для Codeclimate различными способами:
./cc-test-reporter after-build out
./cc-test-reporter after-build < out
Но не повезло...
Я не нашел никаких директив, связанных с форматированием для .codeclimate.yml
файл. Документ написан в супер стиле "вы знаете", так что это не помогло. Как включить / отправить тестовое покрытие с Codeclimate?
3 ответа
Экспорт var:
CC_TEST_REPORTER_ID=...
Бежать:
for pkg in $(go list ./... | grep -v vendor); do
go test -coverprofile=$(echo $pkg | tr / -).cover $pkg
done
echo "mode: set" > c.out
grep -h -v "^mode:" ./*.cover >> c.out
rm -f *.cover
./cc-test-reporter after-build
Эбби из Code Climate Support здесь. В настоящее время test-reporter
пытается определить, где данные покрытия могут быть из набора путей по умолчанию. Обычно этого достаточно для пользователей, следующих стандартным настройкам инструмента покрытия.
Но в случае, если выходные данные не находятся на одном из этих путей, вы можете использовать test-reporter
низкоуровневые команды для указания типа данных покрытия и их местонахождения. В этом конкретном случае вы бы сделали что-то вроде:
export CC_TEST_REPORTER_ID=<repo-test-reporter-id>
./cc-test-reporter before-build
gocov test -coverprofile=out
./cc-test-reporter format-coverage --input-type gocov out
./cc-test-reporter upload-coverage
Вы можете проверить больше о том, как использовать test-reporter
Команда с использованием флага --help
, Например, ./cc-test-reporter format-coverage --help
,
Это должно привести вас в хорошее место. Если нет, дайте нам знать по адресу hello@codeclimate.com или здесь, и я могу получить больше информации.:)
Для тех из вас, у кого все еще есть эта проблема: для меня проблема заключалась в том, что я неправильно назвал выходной файл покрытия как «cp.out» вместо «c.out», что является
cc-test-reporter
надеется.
Вот мой рабочий сценарий: