Плагин Sonar C # не учитывает 100% покрытых файлов - PullRequest
0 голосов
/ 15 сентября 2011

мы используем следующий набор для анализа нашего проекта .Net4:

  • Maven 2.2.1
  • Галлио 3.2.750
  • PartCover 4.0.20626
  • Сонар 2.9
  • Sonar C # Plugins Ecosystem 1.0

Когда мы открываем файл отчета о покрытии (сборка с Maven / Gallio / Partcover) в PartCover Explorer, у нас есть некоторые файлы со 100% покрытием и, таким образом, глобальный охват 97%.

Но в браузере покрытия сонара мы не можем видеть эти файлы, и тогда вычисление глобального покрытия снижается до 65%.

Мы пробуем с NCover3 и у нас такое же поведение.

Это нормальное поведение? Есть ли параметры для настройки?

Обновлено, чтобы добавить ответ ОП на вопрос

Мы проанализируем проблему немного подробнее. И на самом деле это не из-за 100% покрытых файлов, а из-за интерфейсов. Действительно, они не анализируются PartCover или NCover (в выводе xml нет информации), но они включаются в расчет общего покрытия с помощью Sonar. Есть ли способ параметрировать это?

1 Ответ

0 голосов
/ 20 сентября 2011

Интерфейсы не имеют кода для прибора, и поэтому вы не получите никаких данных покрытия для них, это относится к NCover , PartCover и OpenCover AFAIK.Вы получаете информацию о покрытии только тогда, когда они действительно реализованы.

Вероятно, браузер покрытия Sonar работает с реальными строками кода, а не с тем, что в итоге было превращено в код;измеряется количеством точек последовательности (и точек ветвления для NCover / OpenCover).

Чтобы исключить код, такой как интерфейсы, перечисления и абстрактные методы, автоматически реализуемые свойства и т. д., и т. д. - потребовался бы какой-то изящный анализ, и это зависело бы от языка.

Если вы после метрики покрытия кода, используйте то, что дает вам ваш инструмент покрытия, и объясните остальные

...