unit tests test framework c# .net unit-testing debugging xunit

c# - tests - ¿Cómo depurar con xUnit?



xunit fact c# (6)

En VS2015 y versiones posteriores, instale el paquete xunit.runner.visualstudio NuGet. Luego, la depuración es tan fácil como hacer clic derecho en la prueba en la ventana del explorador de prueba. (Prueba -> Windows -> TestExplorer si no puedes verlo).

Estoy aprendiendo xUnit y hasta ahora, he encontrado que es una herramienta muy útil. Me está haciendo replantear algunas de mis tácticas de codificación para TDD en su lugar.

Sin embargo, me he encontrado con un problema interesante. Mi caso de prueba está fallando. No hay preocupación real allí, pero ¿cómo lo depuro?

Específicamente mi caso de prueba está fallando debido a un error "fuera de índice", o algo similar. No está fallando en la aseveración. Lo que necesito ahora, es una forma de ejecutar el caso de prueba con el depurador de Visual Studio activo para que pueda ver el estado de las diferentes variables.

No voy a publicar el código, ya que esta situación seguramente volverá a aparecer. ¿Alguien tiene alguna idea de CÓMO depurar el caso de prueba?

¡Casi olvido! Estoy usando,

  • Visual Studio 2010 Ultimate (licencia Dreamspark)
  • xUnidad 1.9

Mi flujo de trabajo implica utilizar el corredor de la GUI de xUnit para ejecutar las pruebas.

Si lo que pido es imposible, ¿puede alguien sugerir un conjunto de pruebas alternativo que pueda usar que tenga lo que quiero?


En Visual Studio 2017, asegúrese de que la configuración de la solución se encuentre en el modo ''Depurar''. Bajo el modo ''Liberación'' no se está depurando.


He fallado en la implementación de todo lo anterior, pero lo siguiente funcionó para mí: antes de las líneas en las que desea depurar, agregue la siguiente línea (luego ejecute la prueba):

System.Diagnostics.Debugger.Launch();

El inconveniente es que lanzará otra instancia de VS :).

¡Aclamaciones!


Lo siguiente funcionará en VS.NET y en SharpDevelop.

Abra las propiedades del proyecto de prueba y vaya a la pestaña Depurar:

  • Bajo "Iniciar acción", establezca "Iniciar programa externo" en el ejecutable de ejecución de la unidad xUnit.

  • En "Opciones de inicio", configure "Argumentos de línea de comando" al nombre de la DLL de depuración de su proyecto.

  • También configure "Directorio de trabajo" en el directorio "bin / Debug /" del proyecto.

Luego seleccione Depurar> Ejecutar o presione F5 para ejecutar su prueba en modo de depuración. Los puntos de ruptura serán alcanzados.

La ventaja de hacer su depuración de esta manera es que no tiene que adjuntar a la GUI xUnit cada vez, solo necesita ejecutar su proyecto de prueba.


No he probado esto, pero debería poder adjuntar Visual Studio a la GUI xUnit y realizar la depuración desde allí.

En el menú Depurar, seleccione ''adjuntar al proceso'', busque el nombre del ejecutable en la lista y haga clic en adjuntar. Establezca puntos de interrupción en la prueba de la unidad según sea necesario y ejecute la prueba desde la GUI. El punto de ruptura debe ser golpeado como se esperaba.


Si tiene resharper, con la extensión contrib de X-unit instalada (¡muy recomendable!), Haga clic con el botón derecho en la clase en Visual Studio y haga clic en "Depurar pruebas de unidad".

¡Sencillo!