2015-12-16 2 views
1

Предположим, что язык, который я использую, является Java, и я выполняю конкретную фиксацию, есть ли способ, как я могу рассказать о кодовом охвате фиксации или даже если это было сделано? Когда пользователь переходит к репозиторию, я хочу иметь несколько статистических данных о фиксации, включая охват тестового пакета для этого конкретного коммита. Возможно ли это? Там уже есть такие инструменты или мне нужно подумать о чем-то обычае?Обнаружение кода тестового кода объекта фиксации

Я использую Git, размещенный под Gitblit, я, как ни странно, видел механизм крюка от Gitblit, поэтому дело только в том, как это сделать.

+0

Что вы используете в качестве системы контроля версий? – Manu

+0

Git размещен под Gitblit – patentul

+0

Что вы действительно ищете - это сервер непрерывной интеграции, такой как Jenkins и т. Д. Затем вы устанавливаете плагины для визуализации отчета о покрытии сборки. Их много, и большинство из них должны позволить «разрушить сборку», если охват тестирования падает ниже определенного порога. – kryger

ответ

1

Я сейчас работаю над той же проблемой, и я пришел с этим подходом:

  • Мои проекты Java и Maven на основе. Каждый из них наследуется от общего родителя.
  • В общем родительском pom я установил плагин jacoco-maven на этапе интеграции, чтобы рассчитать охват модульных тестов. Полученный отчет хранится в том же проекте вместе с исходным кодом.
  • Каждый раз, когда разработчик совершает фиксацию в Системе управления версиями, он также совершает отчет, чтобы я запросил состояние покрытия для каждой сделанной транзакции.

Это уже сделано и работает. Следующим шагом будет разработка инструмента для запроса системы управления версиями (которая является SVN в моем случае), чтобы получить статистику охвата: по дате, проекту и даже пользователю.

Отметьте, что отчет, созданный Jacoco, равен absolute, а не поэтапно. Если вы хотите, чтобы он был инкрементным (как и я хочу, тоже), вам нужно вычислить разницу между одним отчетом и предыдущим.

Чтобы запросить SVN, я в настоящее время использую org.tmatesoft.svnkit:svnkit:1.3.8.

Та же процедура может быть применена к другим метрикам кода: правила выполнения и т.д.

+0

Плагин jacoco maven вычисляет только новый код или код покрытия на основе всех существующих модульных тестов? В третьем пункте вы упомянули, как вы запрашиваете SVN для конкретного отчета разработчика или по дате? – patentul

+0

Я имею в виду, скажем, разработчик выполняет только новую функцию без изменения существующего кода. Предположим, покрытие кода составляет 0% до его фиксации и что его фиксация содержит 100% -ный охват кода. Как jacoco ведет себя, охватывает ли он весь код или только новый коммандовый? Есть ли способ, основанный на фиксации и отчете jacoco, видеть только для этого конкретного фиксации покрытия кода? – patentul

+0

Что вы используете для вычисления разницы между одним сообщением jacoco другому, чтобы получить отчет об увеличении охвата кода? – patentul

Смежные вопросы