Cobertura Check & Validation - PullRequest
       20

Cobertura Check & Validation

2 голосов
/ 07 марта 2012

Я вижу, что у Cobertura есть задача <cobertura:check>, которую можно использовать для обеспечения покрытия во время сборки (если показатели покрытия опускаются ниже определенного значения, сборка завершается неудачно).На веб-сайте представлены примеры с несколькими различными доступными атрибутами, но на самом деле не дается описание того, что они из себя представляют или что они делают:

  • branchrate
  • linerate
  • totalbranchrate
  • и т. Д.

Кроме того, каковы стандартные значения для каждого из этих атрибутов?Я уверен, что это будет отличаться между проектами, но у организации должен быть какой-то какой-то способ оценить, что приемлемо, а что нет, и мне интересно, как вообще к этому прийти.Заранее спасибо.

1 Ответ

0 голосов
/ 15 ноября 2012

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

В то время, когда я пишу это, ответы на вашиКонкретные вопросы:

  • Branchrate

Укажите минимально приемлемый уровень охвата филиала, необходимый для каждого класса.Это должно быть целочисленное значение от 0 до 100.

  • линейная скорость

Укажите минимальную приемлемую скорость покрытия линии, необходимую для каждого класса.Это должно быть целочисленное значение в диапазоне от 0 до 100.

  • totalbranchrate

Укажите минимальную приемлемую среднюю частоту охвата веток, необходимую для проекта в видевсе.Это должно быть целочисленное значение в диапазоне от 0 до 100.

Если вы не укажете скорость ветвления, линейную скорость, тоталбранчрат или тоталлинейрат, то Cobertura будет использовать 50% для всех этих значений.

Небольшой поиск в Google показывает, что большинство людей согласны с тем, что «хороший» показатель охвата составляет где-то от 75% до 95%.Я использую% 85 для новых проектов.Тем не менее, я думаю, что показатель, который наиболее полезен для определения того, достаточно ли у вас охвата тестированием, заключается в том, насколько комфортно вашим разработчикам вносить и публиковать изменения в коде (при условии, что у вас есть ответственные разработчики, которые заботятся о появлении ошибок).Помните, что вы можете получить 100% тестовое покрытие без единого утверждения в любом тесте!

Для устаревших проектов все обычно сложнее.Редко можно получить время, чтобы сосредоточиться только на покрытии, поэтому большую часть времени вы узнаете, каков ваш охват кода, а затем попытаетесь улучшить его с течением времени.Задача проверки кобертуры моей мечты будет проверять, является ли покрытие какой-либо данной строки / метода / класса / пакета / проекта тем же самым или лучшим, чем в предыдущей сборке, и иметь отдельные пороговые значения для любого кода, «нового в этой сборке».Может быть, Сонар имеет что-то подобное ...

...