Поддерживает ли VS2010 покрытие кода nUnit?

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

Ответ 1

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

Для этого вам понадобятся три проекта

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

    • Создайте проект VSTest (легкость дыхания)
    • Удалить файл UnitTest1.cs по умолчанию
    • Добавьте "Общий тест" в VSTest
    • Укажите полный путь к версии win32 для консольного бегуна для вашей среды тестирования, например xunit.console.x86.exe
    • Укажите полный путь к dll xUnitTest
    • В тестовом меню VS- > Edit Test Settings- > Local →
    • Данные и диагностика "Вкладка"
    • Убедитесь, что включено только. Покрытие кода включено.
    • Выберите строку "Покрытие кода", затем нажмите кнопку "Настроить" выше (да, это хорошо спроектированный пользовательский интерфейс:)
    • В диалоговом окне "Подробности покрытия кода"
    • Выберите обе для dll для SUT и xUnitTest
    • Включить "сборки приборов в тесте"

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

Ответ 2

Visual Studio 2012 добавила поддержку сторонних unit test фреймворков.

Доступны доступные плагины тестовой структуры:

  • NUnit
  • xUnit.net
  • MbUnit
  • QUnit
  • Жасмин

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

Например, вы можете добавить "NUnit Test Adapter".

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

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

Ответ 3

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

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

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

Ответ 4

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

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

Ответ 5

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

Ответ 6

У меня была такая же проблема, и я узнал, как ее решить. DLL проекта, показанная в диалоговом окне "Cover Coverage Detail", является неправильной сборкой для инструмента, и этот способ дает пустые результаты. Поэтому вам нужно получить эту DLL из другой папки, в папке проекта unit test! Поскольку вы добавили ссылку на свой проект unit test, он будет там. Так, например, в моем случае я создал простой калькулированный калькулятор, а затем создал проект unit test под названием TestCalculator и добавил Calculator.dll в качестве ссылки в проекте unit test. Поэтому в диалоговом окне "Обозначение покрытия кода" я нажимаю "Добавить сборку", и я выбираю Calculator.dll из папки "..\TestCalculator\bin\Debug". Таким образом, это сработает.

Ответ 7

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

Ответ 8

Теоретически это должно быть. Существует даже документация для него на MSDN. В принципе, вам нужно настроить "общий тестовый проект", который завершает тест NUnit. На практике я пытаюсь заставить его работать уже почти три часа, и это все еще не так. Сборка оснащена инструментами, но нет результатов покрытия.

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

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

Ответ 9

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

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

Хотя я не заслуживаю внимания в обоих ответах, просто избавлю меня от downvotes для копирования:

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

Повысьте их!