Чи має Visual Studio покриття коду для модульних тестів?


84

Я використовую версію спільноти Visual Studio 2015, і я знаю, що у неї є можливість створювати модульні тести для тестування коду, але я не бачу можливості перевірити охоплення коду, тому я хотів би знати, чи має Visual Studio цей параметр або якщо мені доведеться використовувати сторонній плагін.

Якщо мені доведеться використовувати сторонні рішення, чи буде це хорошим варіантом?

Відповіді:


79

Тільки Visual Studio 2015 Enterprise має вбудований код. Детальніше див. У матриці функцій .

Ви можете використовувати розширення OpenCover.UI для перевірки покриття коду в Visual Studio. Він підтримує MSTest, nUnit та xUnit.

Нову версію можна завантажити звідси ( примітки до випуску ).


Нова версія розширення тепер доступна у галереї VS visualstudiogallery.msdn.microsoft.com/…
Тоні Венцель

2
Інтерфейс користувача OpenCover, схоже, не підтримує NUnit 3
Леннарт

1
opencover.UI (інтегрований з VS) має дуже брудний звіт (вікно результатів), який просто неможливо використовувати. перейти безпосередньо до відкритої обкладинки: allenconway.net/2015/06/…
Роман Покровський

"Останній випуск - 2016". Не працює з сучасною Visual Studio
Олексій

47

Якщо ви використовуєте Visual Studio 2017 і стикаєтесь із цим запитанням, ви можете розглянути AxoCover. Це безкоштовне розширення VS, яке інтегрує OpenCover, але підтримує VS2017 (воно також, як видається, активно розробляється. +1).

Сторінка розширення VS

https://github.com/axodox/AxoTools


9
Варто зазначити, що (на даний момент) ця версія підтримує лише настільні версії .NET - тобто .NET Core, здається, не підтримується на момент написання.
Джей,

6
12 грудня 2017 р. Досі не підтримує .NET Core / Xamarin
Tuan Tran

1
Так. немає .net ядра. щойно зрозумів після встановлення. :( серпень 2018 р.
default_noob_network

2
Станом на березень 2019 року AxoCover також підтримує лише через xUnit 2.2 (якому вже більше двох років), і наразі не планується підтримувати xUnit 2.3 або 2.4. Якщо ви сподіваєтесь запустити тести xUnit, не турбуйтеся.
Шон Веркема

2
Це червень 2020 року, і, на жаль, наведені вище коментарі все ще відповідають дійсності.
Ε Г И І І О

34

ToniВідповідь дуже корисна, але я подумав швидкий старт для початківців, щоб перевірити оцінку охоплення (як я).

Як уже зазначалося, Visual Studio Professional та Community Edition не мають вбудованої підтримки тестового покриття. Однак його можна отримати досить просто. Я напишу поетапну конфігурацію для використання з тестами NUnit у Visual Studion 2015 Professional.

  1. Встановіть компонент OpenCover NUGet за допомогою інтерфейсу NuGet

  2. Отримати розширення OpenCoverUI . Це можна встановити безпосередньо з Visual Studio за допомогою Інструменти -> Розширення та оновлення

  3. Налаштуйте OpenCoverUI на використання відповідних виконуваних файлів, відкривши Інструменти -> Параметри -> Параметри OpenCover.UI -> Загальні

Шлях NUnit: повинен вказувати на файл `nunit-console.exe. Це можна знайти лише у версії NUnit 2.xx, яку можна завантажити звідси .

Шлях OpenCover : зазвичай це вказує на встановлений пакет<solution path>\packages\OpenCover.4.6.519\tools\OpenCover.Console.exe

  1. Встановіть пакет ReportGenerator NUGet

  2. Доступ OpenCover Test Explorerз меню OpenCover. Спробуйте виявити тести звідти. Якщо це не вдається, перевірте Вихідні вікна для отримання додаткової інформації.

  3. Перевірте результати OpenCover (у меню OpenCover) для отримання додаткової інформації. Він виведе деталі, такі як покриття коду, у вигляді дерева. Ви також можете виділити код, який охоплюється чи не охоплюється (маленький значок у верхньому лівому куті).

ПРИМІТКА: як уже згадувалося, OpenCoverUI не підтримує останню основну версію NUnit (3.xx). Однак, якщо в тестах не буде використано нічого конкретного для цієї версії, вона працюватиме без проблем, незалежно від того, що встановили версію NUnit 3.xx.

Це охоплює швидкий старт. Як уже зазначалося в коментарях, для більш досконалої конфігурації та автоматизації перегляньте цю статтю.


11
Розширення не працює для спільноти VS 2019. Як шкода
nicolascolman


4

Для тих, хто шукає просте рішення у Visual Studio Community 2019, Fine Code Coverage - це просте, але воно працює добре.

Він не може дати точних цифр щодо точного покриття, але він покаже, які лінії покриті зеленими / червоними жолобами.


Це хороший підказка. Однак він працює лише з .NET Core.
Олексій
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.