¿Visual Studio tiene cobertura de código para pruebas unitarias?

82

Estoy usando Visual Studio 2015 Community Edition y sé que tiene la opción de crear pruebas unitarias para probar el código, pero no veo la opción para probar la cobertura del código, así que me gustaría saber si Visual Studio tiene esta opción o si tengo que usar un complemento de terceros.

Si tengo que usar una solución de terceros, ¿sería una buena opción?

Álvaro García
fuente

Respuestas:

79

Solo Visual Studio 2015 Enterprise tiene cobertura de código incorporada. Consulte la matriz de funciones para obtener más detalles.

Puede usar la extensión OpenCover.UI para verificar la cobertura del código dentro de Visual Studio. Es compatible con MSTest, nUnit y xUnit.

La nueva versión se puede descargar desde aquí ( notas de la versión ).

Toni Wenzel
fuente
La nueva versión de extensión ya está disponible en VS Gallery visualstudiogallery.msdn.microsoft.com/…
Toni Wenzel
2
La interfaz de usuario de OpenCover no parece ser compatible con NUnit 3
Lennart
1
opencover.UI (que está integrado con VS) tiene un informe muy desordenado (ventana de resultados) que es simplemente imposible de usar. ir a opencover directamente: allenconway.net/2015/06/…
Roman Pokrovskij
47

Si está utilizando Visual Studio 2017 y se encuentra con esta pregunta, podría considerar AxoCover. Es una extensión VS gratuita que integra OpenCover, pero es compatible con VS2017 (también parece estar en desarrollo activo. +1).

Página de extensión VS

https://github.com/axodox/AxoTools

Gordon Bean
fuente
9
Vale la pena señalar que esto (actualmente) solo admite versiones de escritorio de .NET, es decir, .NET Core no parece ser compatible al momento de escribir este artículo.
Jay
6
12 de diciembre de 2017, todavía no es compatible con .NET Core / Xamarin
Tuan Tran
1
Sip. sin núcleo .net. me acabo de dar cuenta después de que lo instalé. :( agosto 2018
JzInqXc9Dg
2
A partir de marzo de 2019, AxoCover solo admite hasta xUnit 2.2 (que ya tiene más de dos años), sin planes en la actualidad para admitir xUnit 2.3 o 2.4. Si espera ejecutar pruebas de xUnit, no se moleste.
Sean Werkema
2
Es junio de 2020 y, lamentablemente, los comentarios anteriores siguen siendo ciertos.
Ε Г И І И О
34

ToniLa respuesta es muy útil, pero pensé en un comienzo rápido para que los principiantes totales prueben la evaluación de cobertura (como yo).

Como ya se mencionó, Visual Studio Professional y Community Edition no tienen soporte de cobertura de prueba integrado. Sin embargo, se puede obtener con bastante facilidad. Escribiré la configuración paso a paso para usar con las pruebas NUnit dentro de Visual Studion 2015 Professional.

  1. Instale el componente OpenCover NUGet mediante la interfaz NuGet

  2. Obtén la extensión OpenCoverUI . Esto se puede instalar directamente desde Visual Studio usando Herramientas -> Extensiones y actualizaciones

  3. Configure OpenCoverUI para usar los ejecutables apropiados, accediendo a Herramientas -> Opciones -> Opciones de OpenCover.UI -> General

Ruta NUnit: debe apuntar al archivo `nunit-console.exe. Esto se puede encontrar solo dentro de la versión NUnit 2.xx, que se puede descargar desde aquí .

Ruta OpenCover : debe apuntar al paquete instalado, normalmente<solution path>\packages\OpenCover.4.6.519\tools\OpenCover.Console.exe

  1. Instalar el paquete ReportGenerator NUGet

  2. Acceda OpenCover Test Explorerdesde el menú OpenCover. Intente descubrir pruebas a partir de ahí. Si falla, consulte Ventanas de salida para obtener más detalles.

  3. Consulte Resultados de OpenCover (dentro del menú OpenCover) para obtener más detalles. Generará detalles como Cobertura de código en una vista basada en árbol. También puede resaltar el código que está o no cubierto (icono pequeño en la parte superior izquierda).

NOTA: como se mencionó, OpenCoverUI no es compatible con la última versión principal de NUnit (3.xx). Sin embargo, si no se utiliza nada específico de esta versión en las pruebas, funcionará sin problemas, independientemente de haber instalado la versión 3.xx de NUnit.

Esto cubre el inicio rápido. Como ya se mencionó en los comentarios, para una configuración y automatización más avanzadas, consulte este artículo.

Alexei
fuente
10
La extensión no funciona en la comunidad VS 2019. Qué lástima
nicolascolman
@nicolascolman Sí, pero la cobertura de código fino parece funcionar .
Alexei
1

Para cualquiera que busque una solución sencilla en Visual Studio Community 2019, Fine Code Coverage es simple pero funciona bien.

No puede dar números precisos sobre la cobertura precisa, pero dirá qué líneas se cubren con canaletas verdes / rojas.

Bas
fuente
Ésta es una buena pista. Sin embargo, solo funciona con .NET Core.
Alexei