Существует ли свободный инструмент покрытия кода, подходящий для использования с.NET 4 и NUnit, который работает из командной строки (и таким образом подходит для использования на сервере сборки)?
Обратите внимание на то, что любые инструменты, которые требуют выпусков Visual Studio выше, чем Профессионал, не являются соответствующими в этом случае.
Я задаю этот вопрос, потому что я не могу заставить NCover 1.5.8 работать с NUnit 2.5.5 на.NET 4 приложения C#. Я могу выполнить модульные тесты, и я могу генерировать файл Coverage.Xml, но это пусто - это не содержит точек последовательности. После большого исследования я пришел к заключению, что это вызвано тем, что NCover 1.5.8 просто не работает с.NET 4. Однако, если Вы знаете лучше, не стесняйтесь отвечать на этот вопрос от другого пользователя.
Есть PartCover И две вилки Partcover,
Sharpcover здесь
И Partcover-fork здесь
Все кажется несуществующим. Не уверен в совместимости .net 4, но partcover нормально работал с кодом 3.5. Я бы хотел, чтобы кто-нибудь их подобрал.
править Добавить еще один в микс. С охватом .net 4 в качестве цели http://wiki.github.com/sawilde/partcover.net4/
NCover какое-то время занимал нишу покрытия кода на рынке .NET, вероятно, с тех пор, как он впервые стал коммерческим. Я подозреваю, что проблема в том, что старая бесплатная версия была скомпилирована для .NET 2, а .NET 4 достаточно отличается: старый NCover теперь не будет работать правильно.
Как бы то ни было, NCover 3 кажется наиболее жизнеспособным вариантом. По общему признанию, не бесплатно, но стоимость классической версии не так уж и плоха. Недавно я пробовал его, и он отлично работал с приложением .NET 4. И это намного дешевле, чем версия Visual Studio более высокого уровня.
Думаю, краткий ответ на этот вопрос - «Нет».
Я узнал, что NCover 1.5.8 можно заставить работать с небольшим взломом *, но похоже, что нет ничего бесплатного, что поддерживало бы .NET 4. Если вы обнаружите иное, прокомментируйте этот пост или вопрос, и я с радостью приму более подходящий ответ.
(*) «Уловка состоит в том, чтобы установить переменную среды: COMPLUS_ProfAPI_ProfilerCompatibilitySetting = EnableV2Profiler»
- Джейми Кэнсдейл