2010-04-19 4 views

ответ

19

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

Для этого на работу, вам нужно три проекта

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

    1. Создание VSTest проекта (дыхание легкого)
    2. Удалить UnitTest1.cs по умолчанию файл
    3. Добавить «Generic Test» для VSTest
    4. Укажите полный путь к версии win32 консольного бегун для вашей среды тестирования, например xunit.console.x86.ехе
    5. Укажите полный путь к xUnitTest DLL
    6. Под VS Test Меню-> Edit Test Настройки-> информации локального>
    7. данных & Диагностика "Tab"
    8. Убедитесь только код Покрытие включено
    9. Выбор покрытия кода строки, а затем нажмите кнопку «Настройка» выше (да, это хорошо спроектированный интерфейс :)
    10. В «Код покрытия Detail» Диалог
    11. Выберите как Библиотеки DLL для SUT и xUnitTest
    12. Включить "сборки инструмента в тесте"

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

+1

Спасибо! Не тот гладкий ответ, на который я надеялся, хотя .. :-P – stiank81

+0

Пробовал уже несколько часов. Я получаю инструментальные сборки, переданные в nunit-console, но никогда не получаю результаты покрытия кода. – LeffeBrune

+1

Есть небольшая деталь, которая ускользнула от меня - вам абсолютно необходимо использовать x86 runner для ваших тестов (например, nunit-console-x86.exe). Менял тестовый бегун на исправленные проблемы x86, которые у меня были. – LeffeBrune

1

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

+0

Благодарим за комментарий. +1. Не знаю, могу ли я доверять этому без источника, если вы действительно продаете конкурирующий продукт: -P. Поэтому я оставлю это надолго. – stiank81

+0

Это справедливо. Вам не нужно доверять мне - загрузите пробную версию VS2010 и посмотрите на нее сами :) И мы не конкурируем с VS - мы предлагаем дополнительные продукты, чтобы улучшить ее ... BTW, я просто попробовал встроенный запустить dasBlog (использует NUnit) в VS2010 Premium - он не видит теста. VS2010 Пробная загрузка находится здесь - http://msdn.microsoft.com/en-us/vstudio/bb984878.aspx – sergeb

1

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

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

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

+0

Звучит разочаровывающе. Я еще не пробовал себя, но похоже, что тогда это возможно. Пожалуйста, кричите, если вы это выясните! – stiank81

+0

Я попытался установить это и получил nunit, работающий с инструментальными сборками, но данные покрытия кода отсутствуют. Повышена ваша ошибка на сайте MS. – LeffeBrune

+0

Убедитесь, что вы используете x86 runner для своих тестов (nunit-console-x86.exe). – LeffeBrune

5

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

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

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

2

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

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

2

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

2

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

26

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

Испытуемые доступные рамочные модули включают в себя:

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

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

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

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

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

+1

Это способ сделать это. Я не буду тратить время на выполнение тикаемого (более сложного решения), когда это будет работать нормально. –

+1

Применяется только к VS2012 Ultimate или Premium. «Анализ покрытия кода» недоступен для профессионалов. [источник] (http://msdn.microsoft.com/en-us/library/dd537628.aspx) и [источник] (http://social.msdn.microsoft.com/Forums/vstudio/en-US/afd3ee87 -76e4-499d-ad8a-dbc6adb96cb9/видео-студия-профессионал-2012-Тереза-нет кнопки-анализа кода-покрытие) –

0

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

Я составил список из 6 подсказок, которые вместе с маркированной ответ Скотт Вайнштейн сделал трюк для меня: Running NUnit tests in Visual Studio 2010 with code coverage

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

  • Scott Weinstein
  • Джон и Скотт Маккей
  • Lili
  • mnemosyn

Продвиньте их!

Смежные вопросы