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


83

Я использую Visual Studio 2015 Community edition, и я знаю, что у него есть возможность создавать модульные тесты для тестирования кода, но я не вижу возможности проверить покрытие кода, поэтому я хотел бы знать, есть ли в Visual Studio этот вариант или если мне нужно использовать сторонний плагин.

Если мне придется использовать стороннее решение, будет ли это хорошим вариантом?

Ответы:


79

Только Visual Studio 2015 Enterprise имеет встроенное покрытие кода. См. Подробную информацию в матрице функций .

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

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


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

2
Пользовательский интерфейс OpenCover, похоже, не поддерживает NUnit 3
Леннарт

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

«Последний выпуск - 2016». Не работает с современной Visual Studio
Alex

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 все еще не поддерживается
Туан Тран,

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


3

Для всех, кто ищет простое решение в Visual Studio Community 2019, Fine Code Coverage прост, но работает хорошо.

Он не может дать точных цифр о точном покрытии, но он покажет, какие линии покрыты зелеными / красными желобами.


Это хороший намек. Однако он работает только с .NET Core.
Алексей
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.