Pregunta

Visual Studio folder structure

Necesito algunos consejos sobre cómo puedo separar fácilmente las ejecuciones de prueba para las pruebas unitarias y las pruebas de integración en Visual Studio.A menudo, o siempre, estructuro la solución como se presenta en la imagen de arriba:proyectos separados para pruebas unitarias y pruebas de integración.Las pruebas unitarias se ejecutan con mucha frecuencia, mientras que las pruebas de integración se ejecutan naturalmente cuando el contexto está correctamente alineado.

Mi objetivo es poder configurar de alguna manera qué pruebas (o carpetas de pruebas) ejecutar cuando uso un atajo de teclado.Preferiblemente, las pruebas deben ser ejecutadas por un ejecutor de pruebas gráficas (ReSharpers).Así por ejemplo

  • Alt+1 ejecuta las pruebas en el proyecto BLL.Test,
  • Alt+2 ejecuta las pruebas en el proyecto DAL.Tests,
  • Alt+3 los ejecuta a ambos (es decir.todas las pruebas en la carpeta [Pruebas], y
  • Alt+4 ejecuta las pruebas en la carpeta [Tests.Integration].

TestDriven.net tiene la opción de ejecutar solo la prueba en la carpeta o proyecto seleccionado haciendo clic derecho y seleccionando Ejecutar pruebas.Ser capaz de hacer esto, pero mediante un comando de teclado y con un ejecutor de pruebas gráfico, sería fantástico.

TestDriven.net test run output

Actualmente uso VS2008, ReSharper 4 y nUnit.Pero, por supuesto, también se agradecen los consejos para la configuración en general.

¿Fue útil?

Solución

De hecho, encontré una especie de solución para esto por mi cuenta usando un comando de teclado vinculado a una macro.La macro se grabó desde el menú Herramientas>Macros>Grabar Macro Temporal.Mientras grababa, seleccioné mi carpeta [Pruebas] y ejecuté ReSharpers UnitTest.ContextRun.Esto resultó en la siguiente macro,

Sub TemporaryMacro()
    DTE.Windows.Item(Constants.vsWindowKindSolutionExplorer).Activate
    DTE.ActiveWindow.Object.GetItem("TestUnitTest\Tests").Select(vsUISelectionType.vsUISelectionTypeSelect)
    DTE.ExecuteCommand("ReSharper.UnitTest_ContextRun")
End Sub

que luego se vinculó a su propio comando de teclado en Herramientas>Opciones>Entorno>Teclado.

Sin embargo, lo que sería aún más sorprendente es una solución más general en la que pueda configurar exactamente qué proyectos/carpetas/clases ejecutar y cuándo.Por ejemplo mediante un archivo xml.Luego, esto podría incorporarse fácilmente al control de versiones y distribuirse a todos los que trabajan con el proyecto.

Otros consejos

Esta es una solución un poco complicada, pero podrías configurar algunas herramientas externas para cada grupo de pruebas que desee ejecutar.No estoy seguro de si podrá iniciar el ejecutor de pruebas de ReSharper de esta manera, pero puede ejecutar la versión de consola de nunit.Una vez que haya configurado esas herramientas, puede asignar atajos de teclado a los comandos "Tools.ExternalCommand1", "Tools.ExternalCommand2", etc.

Esto realmente no se escalará muy bien y es incómodo cambiarlo, pero le brindará atajos de teclado para ejecutar sus pruebas.Parece que debería haber una forma mucho más sencilla de hacer esto.

Puede usar una macro VS para analizar el archivo XML y luego llamar a nunit.exe con el argumento de línea de comando /fixture para especificar qué clases ejecutar o generar un archivo de guardado de selección y ejecutar nunit usando eso.

Nunca he usado esto pero tal vez pueda ayudar....

http://www.codeplex.com/VS2008UnitTestGUI

"Descripción del proyecto Este proyecto se trata de ejecutar todas las pruebas unitarias dentro de múltiples pruebas de unidades de .NET ensamblaje codificado con Visual Studio 2008".

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top