Есть ли в 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
@nicolascolman Да, но покрытие Fine Code работает .
Алексей
3

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

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

Bas
источник
Это хороший намек. Однако он работает только с .NET Core.
Алексей