Согласно эта схема VS2010 Premium и Ultimate имеет инструмент для проверки покрытия кода - вместе с несколькими другими инструментами тестирования. Поддерживает ли это nUnit, или просто MS-тест?
Поддерживает ли VS2010 покрытие кода nUnit?
Ответ 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
Повысьте их!