Поддерживает ли VS2010 Code Coverage nUnit? - PullRequest
23 голосов
/ 19 апреля 2010

Согласно эта схема VS2010 Premium и Ultimate имеет инструмент для проверки покрытия кода - вместе с несколькими другими инструментами тестирования. Это тоже поддерживает nUnit или только тест MS?

Ответы [ 9 ]

26 голосов
/ 12 ноября 2012

В Visual Studio 2012 добавлена ​​поддержка сторонних платформ модульных тестов.

Доступны следующие плагины платформ тестирования:

  • NUnit
  • xUnit.net
  • MbUnit
  • QUnit
  • Jasmine

Добавление поддержки очень просто, потому что вы можете добавить ее из Менеджера расширений Visual Studio.

Например, вы можете добавить «Тестовый адаптер NUnit».

И теперь «Анализ покрытия кода» работает со структурой сторонних модулей .Вы можете проверить все тесты или только один.

И если вы используете VS 2010, не бойтесь обновиться до VS2012, поскольку файлы sln совместимы (вам нужен VS2010 с пакетом обновления 1).

19 голосов
/ 31 мая 2010

Это выполнимо, но требует немного установки. Я только что работал с xUnit. Предположительно нижеприведенное будет работать и с NUnit.

Чтобы это работало, вам понадобятся три проекта

  • Тестируемая система - SUT
  • Проект тестирования с использованием вашей любимой среды модульного тестирования - xUnitTest
  • Тестовый проект VS - VSTest

    1. Создание проекта VSTest (дыхание просто)
    2. Удалить файл UnitTest1.cs по умолчанию
    3. Добавить "Общий тест" к VSTest
    4. Укажите полный путь к win32-версии консоли запуска для вашей среды тестирования, такой как xunit.console.x86.exe
    5. Укажите полный путь к xUnitTest dll
    6. В меню тестирования VS-> Изменить настройки теста-> Локальный ->
    7. Данные и диагностика "Вкладка"
    8. Убедитесь, что только Включено покрытие кода
    9. Выберите строку Code Coverage, затем нажмите кнопку «Настроить» выше (да, это хорошо разработанный интерфейс:)
    10. В диалоговом окне «Сведения о покрытии кода»
    11. Выберите оба dll для SUT и xUnitTest
    12. Включить "Приборные сборки в тесте"

Теперь, когда вы запустите тест VS2010, он правильно установит тестовые библиотеки, запустит программу запуска кода и соберет информацию в Visual Studio.

5 голосов
/ 18 июля 2010

Проиграв с этим чуть более часа, я не смог заставить его работать должным образом. Мне удалось правильно запустить общий тест с инструментарием для NUnit 2.5.5 с помощью nunit-console.exe. Несмотря на то, что консольный NUnit успешно выполнил мой тест через общий VSTest, я так и не смог получить результаты покрытия кода.

Хотя тестовые функции VS2010 звучат великолепно, читая о них, реализация кажется чрезмерно сложной и очень тяжелой. Я использую NUnit в течение многих лет с большим успехом и очень низким трением.

Я решил попробовать JetBrains dotCover beta, и в течение 5 минут я скачал его, установил его и смог очень успешно настроить и использовать. Похоже, он плохо интегрируется в ReSharper 5 и работает только для моих тестов NUnit. Подсветка кода - отличный визуальный инструмент для быстрого поиска блоков кода, которые не были выполнены тестами.

2 голосов
/ 29 декабря 2010

У меня была такая же проблема, и я нашел способ ее решить. DLL проекта, показанный в диалоговом окне «Сведения о покрытии кода», является неправильной сборкой, которая должна быть инструментирована, и это дает пустые результаты. Таким образом, вам нужно на самом деле получить эту DLL из другой папки, она находится в папке проекта модульного теста! Поскольку вы добавили ссылку на ваш проект модульного тестирования, он будет там. Так, например, в моем случае я создал простой проект под названием Calculator, а затем создал проект модульного теста под названием TestCalculator и добавил Calculator.dll в качестве ссылки в проекте модульного теста. Поэтому в диалоговом окне «Сведения о покрытии кода» я нажимаю «Добавить сборку» и выбираю Calculator.dll из папки «.. \ TestCalculator \ bin \ Debug». Таким образом, это будет работать.

2 голосов
/ 15 сентября 2010

Я попробовал каждый метод, который нашел в Google, чтобы включить это, а затем решил попробовать TestDriven.NET. Это сработало блестяще: щелкнули правой кнопкой мыши по решению, протестировали с покрытием и сделали. Серьезно, это не может быть проще.

2 голосов
/ 06 сентября 2010

Вам нужно отключить shadowcopy в NUnit, чтобы заставить его работать. Для этого используйте флаг / noshadow.

например. C: \ Program Files (x86) \ NUnit 2.6 \ bin \ nunit-console-x86.exe MyLibrary.dll / noshadow

1 голос
/ 06 мая 2010

Теоретически , так и должно быть. На MSDN есть даже документация . По сути, вам нужно настроить «общий тестовый проект», который обернет тест NUnit. На практике я пытался заставить его работать почти три часа, но до сих пор не получается. Сборка инструментирована, но результатов покрытия нет.

Я всегда получаю это сообщение: «Сгенерированы пустые результаты: ни один из инструментированных двоичных файлов не использовался. Посмотрите подробности тестового прогона на наличие проблем с измерительными приборами.», Но в этом файле не сообщается о проблемах.

Также в журнале событий появляется ошибка VSPerf. Я представил это как ошибку Microsoft . Однако это может быть связано с моей машиной. Поскольку я только что представил эту ошибку, я пока не знаю, могут ли другие воспроизвести проблему или нет.

1 голос
/ 04 мая 2010

Насколько мне известно, это не так. Наш инструмент TestMatrix делает то же самое.

0 голосов
/ 02 сентября 2013

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

Я составил список из 6 подсказок, которые вместе с помеченным ответом Скотта Вайнштейна помогли мне: Запуск тестов NUnit в Visual Studio 2010 с покрытием кода

Хотя я не заслуживаю положительных отзывов по обоим ответам, просто избавьте меня от отрицательных голосов за копирование:

  • Скотт Вайнштейн
  • Джон и Скотт Маккей
  • Lili
  • mnemosyn

Проголосуй за них!

...