Каковы наиболее эффективные (свободно доступные) инструменты для покрытия кода С#?

Версия Visual Studio С# Express является адекватной средой разработки, когда дело доходит до написания С#, и NUnit является подходящей основой для написания модульных тестов. Однако этого спаривания недостаточно для определения покрытия кода этими тестами.

Я понимаю, что выпуски Professional и Ultimate интегрируются с MSTest и обеспечивают полностью интегрированное покрытие кода... но это ограничивает проверку охвата тех, кто приобрел соответствующую IDE - что не идеально.

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

Меня беспокоит качество показателей охвата - например, я бы хотел, чтобы анализ охвата на уровне веток был не просто линейным.

Мне кажется, что Visual Studio Professional/Ultimate не является идеальным решением для разработчиков в среде Mono... может ли кто-нибудь сказать мне, что обычно используется в таком контексте?

Ответ 1

NCrunch довольно крутой. Он дает вам визуальные индикаторы в левой части кода, чтобы вы знали, охвачены ли они, и если тесты на нем прошли.

http://www.ncrunch.net/

Ответ 2

OpenCover и PartCover в настоящее время являются двумя основными инструментами.

PartCover является самым старым и больше не поддерживается на SourceForge. Поддержка этой утилиты с тех пор переместилась в GitHub (PartCover на GitHub)

OpenCover новее, а также на GitHub (OpenCover на GitHub), он поддерживает 64 и 32 бит и преодолевает некоторые ограничения, которые У PartCover есть (доставка памяти и результатов).

Оба поддерживаются с помощью TypeMock (я думаю, что поддержка OpenCover добавляется в ближайшее время см. Может ли Opencover использоваться с изолятором TypeMock?)

Отчеты как для PartCover, так и для OpenCover могут быть предоставлены с помощью ReportGenerator()

Ответ 3

PartCover?

Или SharpDevelop? SharpDevelop представляет собой альтернативную среду IDE, которая имеет больше возможностей, чем версия Express VS.

Ответ 4

Я удивлен, что никто не упомянул об этом, но визуальная студия Team Edition поставляется с инструментом для охвата кода. (Это часть набора Team Tools). Также, когда вы запускаете модульные тесты в VS Team Edition, он выполняет кодовое покрытие AUTO-MAGICALLY.:)

Итак, это бесплатно в некотором смысле, если у вас уже есть Team Edition, но, конечно, Team Edition стоит немного больше. Итак, вы идете.