Simplificando las Pruebas Unitarias en Visual Studio: Una Guía para Ejecutar Pruebas en Diferentes Carpetas y Proyectos
Las pruebas unitarias son un aspecto esencial del desarrollo de software moderno, asegurando que los componentes individuales funcionen como se espera antes de integrarlos en un sistema más grande. En entornos como Visual Studio, es común crear proyectos separados para pruebas unitarias y pruebas de integración. Esta estructura puede complicar la ejecución de las pruebas, especialmente cuando deseas ejecutar rápidamente pruebas en carpetas o proyectos específicos. En este post, recorreremos una solución para ejecutar tus pruebas unitarias basadas en la estructura de carpetas de tu proyecto, haciendo el proceso más eficiente con la ayuda de atajos de teclado y macros.
El Desafío
Muchos desarrolladores estructuran sus soluciones de Visual Studio con proyectos distintos para pruebas unitarias y pruebas de integración. Esto crea la necesidad de una estrategia clara para gestionar las ejecuciones de pruebas, como:
- Ejecutar pruebas unitarias con frecuencia.
- Ejecutar pruebas de integración solo en contextos específicos.
Tu objetivo podría ser configurar atajos de teclado para ejecutar pruebas en varios proyectos sin tener que navegar a través de menús cada vez. Por ejemplo, querrías lograr algo como:
- Alt+1: Ejecuta pruebas en el proyecto BLL.Test.
- Alt+2: Ejecuta pruebas en el proyecto DAL.Tests.
- Alt+3: Ejecuta todas las pruebas en la carpeta [Tests].
- Alt+4: Ejecuta pruebas en la carpeta [Tests.Integration].
Afortunadamente, hay una manera de optimizar este proceso en Visual Studio.
Una Solución Práctica Usando Macros
Puedes crear una macro en Visual Studio que te permita ejecutar pruebas en proyectos o carpetas específicas con un simple comando de teclado. Aquí te explicamos cómo configurarlo:
Instrucciones Paso a Paso para Crear una Macro
-
Abre Visual Studio: Inicia tu entorno de Visual Studio.
-
Crea una Macro Temporal:
- Navega al menú:
Herramientas > Macros > Grabar MacroTemporal
. - Esto comenzará a grabar tus acciones.
- Navega al menú:
-
Selecciona Tu Carpeta de Pruebas:
- En el Explorador de Soluciones, selecciona la carpeta [Tests] (o tu carpeta de pruebas deseada).
-
Ejecuta las Pruebas:
- Ejecuta el comando para correr las pruebas usando ReSharper:
ReSharper.UnitTest.ContextRun
.
- Ejecuta el comando para correr las pruebas usando ReSharper:
-
Detén la Grabación:
- Una vez terminado, navega de nuevo a
Herramientas > Macros
y detén la grabación.
- Una vez terminado, navega de nuevo a
-
Edita la Macro:
- Puedes encontrar tu macro grabada en
Herramientas > Macros > MisMacros
. - Modifícala para adaptarla a tus necesidades (encontrarás el código para ejecutar tu carpeta de pruebas específica).
- Puedes encontrar tu macro grabada en
Ejemplo de una Macro Grabada
Aquí hay un código de macro de muestra que puedes ajustar para tu estructura de proyecto específica:
Sub MacroTemporal()
DTE.Windows.Item(Constants.vsWindowKindSolutionExplorer).Activate
DTE.ActiveWindow.Object.GetItem("TestUnitTest\Tests").Select(vsUISelectionType.vsUISelectionTypeSelect)
DTE.ExecuteCommand("ReSharper.UnitTest_ContextRun")
End Sub
- Asigna la Macro a un Atajo de Teclado:
- Ve a
Herramientas > Opciones > Entorno > Teclado
. - Busca tu macro en la lista y asigna un atajo de teclado a ella.
- Ve a
Un Enfoque Más Generalizado con Archivos de Configuración
Mientras que el método anterior proporciona una solución sólida para ejecutar pruebas, puede ser aún mejor si consideras un enfoque más escalable. Imagina poder configurar qué proyectos, carpetas o clases ejecutar a través de un archivo XML. Esto puede:
- Facilitar el control de versiones.
- Asegurar que todos en tu equipo sigan el mismo proceso de ejecución de pruebas.
Beneficios de Usar Configuración XML
- Consistencia: Todos los desarrolladores pueden compartir las mismas configuraciones.
- Flexibilidad: Modificar fácilmente los objetivos de prueba sin alterar el código.
- Simplicidad: Los no desarrolladores en tu equipo pueden agregar o modificar configuraciones de prueba sin necesidad de interactuar con el IDE de VS.
En conclusión, al utilizar macros dentro de Visual Studio y potencialmente incorporar archivos de configuración, puedes mejorar significativamente tu flujo de trabajo de desarrollo. Este sistema no solo ahorra tiempo, sino que también asegura que tu equipo pueda gestionar las ejecuciones de pruebas sin esfuerzo. Ahora, con la capacidad de ejecutar pruebas específicas usando solo un atajo de teclado, puedes concentrarte más en escribir código y menos en navegar por tu IDE.