Estoy comenzando a desarrollar y organizar pruebas para una gran solución de Visual Studio. (Sí, sé que las pruebas deberían haberse desarrollado junto con el código en lugar de cuando el proyecto está casi completo, pero las cosas son lo que son).Unidad/Organización de prueba de integración en una solución grande de Visual Studio
He visto preguntas similares sobre la organización de pruebas unitarias en soluciones de Visual Studio , pero tampoco vi ninguna que aborde las pruebas de integración. Agradecería una guía sobre dónde ubicar los proyectos de prueba para que no llenen la ya de por sí gran base de códigos.
Aquí está la jerarquía básica de cosas dentro de la solución. (Todos los artículos no terminan en .proj son carpetas dentro de un proyecto o carpetas solución.)
- HardwareServices
- HardwareService1
- HardwareService1.Core.proj
- HardwareService1.Host.proj
- HardwareService1.Service.proj
- HardwareService2
- HardwareService2.Core.proj
- HardwareService2.Host.proj
- HardwareService2.Service.proj
- HardwareService1
- Infraestructura
- MyApp.Database.proj
- MyApp.Infrastructure .proj
- MyApp.ReportViewer.proj
- MyApp.SettingsManager.proj
- AppModules
- AppModule1.proj
- Común
- Informes
- Servicios
- ViewModels
- Vistas
- AppModule2.proj (estructura similar a otros AppModules)
- AppModule3.proj (estructura similar a otros AppModules)
- AppModule1.proj
- Módulos
- ComputeEngine.proj
- Footer.proj
- Header.proj
- CommonServices.proj
Mi idea era hacer una carpeta de soluciones llamadas "pruebas" y luego imitar la jerarquía superior, haciendo una prueba de proyecto para cada proyecto de código de producción. Dentro de cada proyecto de prueba, crearía carpetas llamadas "UnitTests" y "IntegrationTests".
Mi objetivo es crear un esquema de nombres/organización coherente para que no exista ambigüedad acerca de dónde deberían ir las nuevas pruebas y dónde encontrar las pruebas existentes. Dado el gran tamaño de este proyecto/aplicación, me gustaría obtener la estructura bastante sólida desde la puerta para que no sea un problema después.
Gracias por su tiempo y consejo.
Esa fue la otra forma que he visto sugerido (mantener las pruebas con el proyecto). Supongo que habría HardwareServices1.Core.Tests.Unit.proj y HardwareServices1.Core.Tests.Integration.proj correspondientes en la carpeta "Tests" en su ejemplo anterior, ¿sí? – geoffmazeroff
Sí, eso sería correcto si el proyecto de host/servicio necesitara pruebas de unidad/integración. –
Gracias, @Mark. Creo que dado que el equipo está muy familiarizado con las cosas que hay en la solución, mantener las pruebas con el código en sí las hace más fáciles de encontrar. – geoffmazeroff