visual temas tag studio para mejores las extensions extensiones code brackethighlighter autocompletar visual-studio-2010 nunit mstest code-coverage

visual studio 2010 - temas - ¿La cobertura de código VS2010 es compatible con nUnit?



visual studio code extensions (9)

Después de juguetear con esto por un poco más de una hora, no pude hacerlo funcionar correctamente. Pude hacer que la prueba genérica se ejecutara correctamente con la instrumentación para NUnit 2.5.5 usando nunit-console.exe. Aunque el corredor de la consola NUnit ejecutó mi prueba con éxito a través del VSTest genérico, nunca pude generar resultados de cobertura de código.

Aunque las características de prueba del VS2010 suenan muy bien al leer sobre ellas, la implementación parece demasiado compleja y muy pesada. He estado usando NUnit durante años con gran éxito y muy baja fricción.

Decidí probar JetBrains dotCover beta y en 5 minutos lo descargué, lo instalé y pude configurarlo y usarlo con gran éxito. Se integra aparentemente en ReSharper 5 y solo funcionó para mis pruebas NUnit. El resaltado de código es una gran herramienta visual para localizar rápidamente bloques de código que no fueron ejecutados por las pruebas.

De acuerdo con este esquema, VS2010 Premium y Ultimate tienen una herramienta para verificar la cobertura de código, junto con algunas otras herramientas de prueba. ¿Esto es compatible con nUnit también, o solo MS test?


Es factible, pero requiere un poco de configuración. Acabo de trabajar con xUnit. Presumiblemente, lo de abajo también funcionará con NUnit.

Para que esto funcione, necesitarás tres proyectos.

  • El sistema bajo prueba - SUT
  • Un proyecto de prueba utilizando su marco de prueba de unidad favorito - xUnitTest
  • Un proyecto de prueba VS - VSTest

    1. Crea el proyecto VSTest (respira con facilidad)
    2. Eliminar el archivo predeterminado UnitTest1.cs
    3. Agregue una "prueba genérica" ​​a VSTest
    4. Especifique la ruta completa a la versión win32 del corredor de consola para su marco de prueba, como xunit.console.x86.exe
    5. Especifique la ruta completa a la dll xUnitTest
    6. Bajo el menú de prueba de VS-> Editar configuración de prueba-> Local->
    7. Datos y diagnóstico "pestaña"
    8. Asegúrese de que solo la cobertura de código esté habilitada
    9. Seleccione la fila de cobertura de código, luego haga clic en el botón "Configurar" arriba (sí, esta es una IU bien diseñada :)
    10. En el diálogo "Detalle de cobertura de código"
    11. Seleccione las dos dlls para SUT y xUnitTest
    12. Habilitar "Ensamblajes de instrumentos en prueba"

Ahora, cuando ejecute la prueba VS2010, instrumentará correctamente las dlls de prueba, ejecutará el corredor de código y reunirá la información en Visual Studio.


Intenté todos los métodos que encontré en Google para habilitar eso y luego decidí probar TestDriven.NET. Funcionó a la perfección: clik correcto en la solución, prueba con cobertura y hecho. En serio, no podría ser más fácil.


Muchas de las respuestas en este hilo me ayudaron mucho, pero es un infierno obtener todos los pequeños detalles de múltiples respuestas.

Compilé una lista de 6 sugerencias que, junto con la respuesta marcada de Scott Weinstein, hicieron el truco por mí: realizar pruebas NUnit en Visual Studio 2010 con cobertura de código

Aunque no merezco los votos positivos en las dos respuestas, solo me sobra los votos por copiar:

  • Scott Weinstein
  • John y Scott McKay
  • Lili
  • mnemosyn

Upvote ellos!


Necesitas desactivar la copia de la sombra en NUnit para que funcione. Para hacerlo, usa la bandera / noshadow.

por ejemplo, C: / Archivos de programa (x86) / NUnit 2.6 / bin / nunit-console-x86.exe MyLibrary.dll / noshadow


Que yo sepa, no lo hace. Nuestra herramienta TestMatrix hace sin embargo.


Tuve el mismo problema y encontré una manera de resolverlo. La dll del proyecto que se muestra en el cuadro de diálogo "Detalle de cobertura de código" es el ensamblaje incorrecto que se debe instrumentar y de esa manera se están dando resultados vacíos. Así que realmente necesitas obtener esa dll de otra carpeta, ¡está en la carpeta del proyecto de prueba de la unidad! Ya que agregó como referencia a su proyecto de prueba de unidad estará allí. Entonces, por ejemplo, en mi caso, creé una calculadora con un simple proyecto y luego creé un proyecto de prueba unitaria llamado TestCalculator y añadí Calculator.dll como referencia en el proyecto de prueba unitaria. Así que en el cuadro de diálogo "Detalle de cobertura de código", hago clic en "Agregar ensamblaje" y selecciono Calculator.dll de la carpeta ".. / TestCalculator / bin / Debug". De esa manera funcionará.


Visual Studio 2012 agregó soporte para marcos de prueba de unidades de terceros.

Los complementos de framework de prueba disponibles incluyen:

  • NUnit
  • xUnit.net
  • MbUnit
  • Quit
  • Jazmín

Agregar soporte es muy fácil porque puede agregarlo desde Visual Studio Extension Manager.

Por ejemplo, puede agregar el "Adaptador de prueba NUnit".

Y ahora el "Analizar la cobertura del código" funciona con un marco de unidades de terceros . Puedes inspeccionar todas las pruebas o solo una.

Y si usa VS 2010, no tenga miedo de actualizar a VS2012 porque los archivos sln son compatibles (necesita VS2010 con SP1).


Teóricamente , debería. Incluso hay documentación para ello en MSDN . Básicamente, debe configurar un "proyecto de prueba genérico" que envuelva la prueba NUnit. En la práctica, he estado tratando de que funcione durante casi tres horas y todavía no funciona. El montaje está instrumentado, pero no hay resultados de cobertura.

Siempre recibo este mensaje: "Se generaron resultados vacíos: no se utilizó ninguno de los binarios instrumentados. Mire los detalles de la ejecución de prueba para cualquier problema de instrumentación", pero no se informa de ningún problema en ese archivo.

Además, aparece un error de VSPerf en el registro de eventos. He enviado esto como un error a Microsoft . Sin embargo, esto podría estar relacionado con mi máquina. Ya que presenté ese error ahora, no sé si otros pueden reproducir el problema o no.