#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.