дифференциальное кодовое покрытие - PullRequest
5 голосов
/ 02 сентября 2011

Мы добавляем модульные тесты к ранее непроверенному коду, так как возникает необходимость изменить этот код. Получить полезные показатели покрытия сложно, поскольку известно, что большая часть кода в любом пакете не проверена.

Существуют ли какие-либо инструменты для измерения дифференциального охвата кода, то есть процента кода, модифицированного в данном наборе изменений, который был покрыт модульным тестом?

Ответы [ 5 ]

2 голосов
/ 14 мая 2015

Использование pycobertura . Это инструмент командной строки, который предотвращает регрессию покрытия кода путем различий в двух отчетах о покрытии. Он сообщает вам, является ли ваш новый код лучше или хуже предыдущей версии, с точки зрения охвата.

$ pycobertura diff ./master/coverage.xml ./myfeature/coverage.xml

Это не зависит от языка, поскольку оно опирается только на отчет Cobertura (файл XML), сгенерированный вашим инструментом тестирования / покрытия.

Pycobertura также может генерировать отчеты в формате HTML, которые прекрасно подходят для таких инструментов CI / CD, как Jenkins.

enter image description here

https://github.com/aconrad/pycobertura

1 голос
/ 02 сентября 2011

Инструменты непрерывной интеграции, такие как Jenkins, позволяют вести историю покрытия тестами и отображать график, отражающий тенденцию покрытия по сравнению с предыдущими сборками.Пример: Плагин Cobertura Jenkins

0 голосов
/ 29 октября 2018

Для этого вы можете использовать diff-test-охват .diff-test-coverage - это инструмент командной строки Node.js, который фильтрует тестовое покрытие на основе различий (контроля источника).

Он работает путем фильтрации информации отчета о покрытии, поэтому он может сообщать информацию о покрытии для нового кода.

diff-test-coverage

Он поддерживает Git и Mercurial, а также все распространенные форматы отчетов о покрытии.

0 голосов
/ 20 июня 2015

Я недавно сделал именно это, используя JaCoCo и ConQAT инфраструктуру для анализа кода. Подход заключается в следующем:

  1. Загрузка исходного кода из базовой версии и версии заголовка (и, возможно, промежуточных, если вы также выполняли промежуточные тесты)
  2. Сравните метод истории программ по методу, чтобы определить, где произошли изменения
  3. Аннотировать информацию о покрытии для каждой проверенной ревизии
  4. Поиск методов, которые не были рассмотрены с момента последнего изменения

Есть также сообщение в блоге , содержащее более подробное описание, включая визуализации и более сложные темы, такие как обнаружение рефакторинга, чтобы идентифицировать только те изменения, которые стоит протестировать.

0 голосов
/ 10 апреля 2012

Взгляните на Sonar, действительно хороший инструмент для анализа качества и охвата всего приложения.

...