visual unitarias unit tutorial test studio que pruebas net ejemplo ejecutar .net visual-studio unit-testing solution

.net - unitarias - que es xunit



Pruebas de proyectos en soluciĆ³n (7)

Generalmente pongo pruebas unitarias en sus propios proyectos y pruebas de integración en su propio proyecto dentro de la solución de la aplicación.

Donde trabajo, estamos considerando poner pruebas web en una solución separada. Planeamos compartir la autoría de pruebas web con el equipo de control de calidad y no queremos que estas pruebas se conviertan en una responsabilidad de desarrollo.

En .NET, ¿debe colocar los proyectos de prueba unitarios con el resto de la solución? ¿O debería haber una solución de prueba que aloje todos los proyectos de prueba?

Tenemos todos los proyectos de prueba con nuestra solución de código base ... parece un poco engorroso.

¿Qué haces usualmente?


Mira el diseño de tu proyecto. Si está en algún lugar cerca del diseño de MVC o una de sus alternativas, entonces debe tener distintos niveles de diferentes conjuntos. Haga un subconjunto de prueba para cada nivel de su diseño.

Nuestro proyecto de prueba normalmente se ejecuta en lugar del proyecto que crea el EXE. Nuestro proyecto EXE es una capa delgada que pasa el evento y la información a un ensamblaje lleno de clases de controlador que tiene el código que la mayoría de la gente pone en un proyecto EXE. Esto permite que el Proyecto de prueba pretenda ser el EXE durante el 90% del proceso de prueba normal.

Todavía estamos trabajando en la mejor disposición para los casos de prueba reales. En este momento tenemos varios niveles principales de nuestra utilidad de marco, Objetos de aplicación, Marco de interfaz de usuario, Comandos, Controladores de interfaz de usuario y EXE. Tenemos un ensamblaje para cada nivel excepto EXE (que se prueba manualmente). Cuando editamos un ensamblaje, cargamos el ensamblaje de prueba para ese nivel. Cuando tenemos que hacer algo que toca todos los niveles, tenemos que cargar todos los conjuntos de prueba.

Durante nuestro proceso de compilación de un solo botón ejecutamos el proyecto de prueba exe. (Tenemos una utilidad separada para esto).


No uso .NET, pero cuando desarrollo casos de prueba de cualquier tipo, los mantengo aislados del resto del código para que pueda implementar la aplicación sin las pruebas. El usuario no necesita, o incluso quiere esas cosas.


Nuestro código de prueba no se envía, pero forman parte de la solución como un todo. Nuestro constructor separa los ensambles de prueba y los componentes principales. Desde una perspectiva de administración de soluciones, parece que una solución con más de 140 proyectos es abrumadora.


Siempre los he mantenido como parte de la solución; después de todo, son parte de la solución. Sin embargo, puede tener múltiples soluciones para diferentes enfoques para visualizar sus proyectos, por lo que una solución sin pruebas puede ser lo que desea crear en algunos casos.


Siempre usamos un proyecto separado dentro de la misma solución.

Esto significa que podemos estar seguros (utilizando referencias) de que el código de prueba unitaria también prueba nuestras referencias explícitas (en lugar de recoger implícitamente algo de visibilidad porque está en el mismo conjunto, por ejemplo, "interno").


En nuestro proyecto actual, decidimos poner todas las pruebas unitarias en proyectos separados. El código y las pruebas de la aplicación están en la misma solución, pero al menos podemos construir (y desplegar) una versión sin el código de prueba de la unidad.

La desventaja de esto, hasta ahora, ha sido que a veces las pruebas de su unidad no pueden llegar a ciertos miembros del código de la aplicación (protegido y interno), pero eso generalmente nos lleva a descubrir que nuestro diseño podría mejorarse.

Y creo que debería señalar un hilo similar Aquí con más respuestas sobre el mismo tema / similar.