Показывать покрытие кода C # в запросах на извлечение GitHub?

#c# #github #continuous-integration #travis-ci #pull-request

#c# #github #непрерывная интеграция #трэвис-ci #запрос на извлечение

Вопрос:

Мы используем проект на C # 6.0 и используем Gitub для контроля версий. Мы также используем Travis для сборки и используем его в качестве проверки запросов на извлечение.

Есть ли способ заставить Travis (или какой-либо другой сервис) вычислить покрытие нашего кода и получить это значение, отображаемое в запросах на извлечение?

Комментарии:

1. Нужно ли Трэвису запускать тест или вы просто ищете другой статус? Вы думали об отдельной интеграции github.com/integrations/feature/code-quality

Ответ №1:

Я только что добавил в Greentube.Мониторинг репозитория Github с помощью этого запроса на извлечение

Существует несколько вариантов инструментов, но я опишу настройку, которую я придумал:

Я использую Travis-CI и AppVeyor для CI, но поскольку OpenCover не работает в Linux или macOS, я мог генерировать данные покрытия только из AppVeyor.

Следует отметить, что OpenCover в настоящее время не поддерживает переносимые PDF-файлы, которые используются по умолчанию для проектов .NET Core. По этой причине я создал конфигурацию проекта под названием Coverage, в которой у меня есть полные PDF-файлы.

Как только вы получите отчет о покрытии, правильно созданный локально, вы можете создать учетную запись на Codecov и связать свой репозиторий. Вам нужно будет отправить первый отчет, чтобы увидеть там что-нибудь.

Я написал скрипт, чтобы я мог просматривать / настраивать отчет о покрытии локально, прежде чем отправлять покрытие в codecov. Примите во внимание, что есть много других вариантов, если по какой-то причине вы не хотите использовать codecov.

Локально или в AppVeyor вам необходимо указать токен Codecov, чтобы загрузить данные покрытия. Вы можете использовать это, передав аргумент инструменту CLI или установив переменную среды CODECOV_TOKEN . В AppVeyor есть раздел среды, где вы можете это определить (вот почему вы не найдете ни одного жестко запрограммированного токена в моем скрипте).

Наконец, я добавил codecov.yml со статусом проекта, который позволяет интегрировать статус Github.