просить совета для покрытия кода и модульного теста - PullRequest
2 голосов
/ 01 ноября 2010

Я использую VS2010 + C # + .Net 4.0.Я хочу сделать покрытие кода для модульных тестов.У меня есть два варианта после расследования, мой вопрос в том, что я хочу знать плюсы и минусы таких двух инструментов / вариантов.

  1. Использование встроенных инструментов не-VS, таких как ncover;
  2. Используя встроенный инструмент VSTS, например,

http://msdn.microsoft.com/en-us/library/dd299398%28VS.90%29.aspx

http://msdn.microsoft.com/en-us/library/ms379625%28VS.80%29.aspx#vstsunittesting_topic7

Ответы [ 2 ]

3 голосов
/ 01 ноября 2010

Используя оба инструмента, они оба работают примерно одинаково.Вы запускаете свои тесты, а затем просматриваете отчет.Оба инструмента обеспечивают подсветку кода, чтобы показать, какие строки кода имеют покрытие, а какие нет.MsTest не предоставляет гораздо больше информации с точки зрения информации, но NCover предоставляет множество отчетов в формате HTML и может отслеживать охват кода с течением времени.Такие вещи могут быть полезны.

Теперь о различиях.Инструменты покрытия MsTest действительно работают только с юнит-тестами MsTest.Он не может легко охватывать тесты, написанные с использованием NUnit (или других сред тестирования) из IDE.Это может быть сделано, но занимает некоторое время и требует вызова инструментов покрытия из командной строки и инструментирования ваших сборок вручную.Опять же, это может быть сделано, но не очень легко, особенно для начинающего.NCover более гибок и может работать с большинством сред тестирования.Кроме того, я обнаружил, что проще запустить NCover с автоматическим сервером сборки.Мне никогда не удавалось автоматизировать покрытие MsTest в CruiseControl, но я предполагаю, что MS заставляет его работать в Team Foundation Server.

1 голос
/ 01 ноября 2010

Просто пара небольших заметок, которые могут быть полезны:

  1. К сожалению, бесплатная версия NCover не работает со средой исполнения .Net 4.0
  2. Если вам интереснов интеграции с CruiseControl.Net вы можете использовать тестер Gallio для запуска тестов MSTest.См. Gallio: не удается запустить тесты, поскольку не найден исполняемый файл MSTest
...