visual unitarias studio pruebas proyecto mvc crear carga automatizadas visual-studio-2010 unit-testing integration-testing mstest

visual-studio-2010 - proyecto - pruebas unitarias c# visual studio 2017



EjecuciĆ³n de pruebas unitarias y pruebas de integraciĆ³n por separado utilizando MSTest (3)

Recomiendo tener un proyecto (o proyectos) diferente para las pruebas de integración porque, dependiendo de su corredor, la única forma real de ejecutar o no ejecutar las pruebas en todos los corredores es incluir o no una biblioteca de clases de prueba.

Pero, también recomiendo, si está utilizando MSTest, usar el atributo TestCategoryAttribute para etiquetar pruebas no unitarias. Luego, puede "filtrar" las pruebas que se ejecutarán en la Vista de prueba con MSTest.

Los corredores como Resharper y aparentemente TestDriven.net ( http://bit.ly/tmtYC2 ) le permiten filtrar esas pruebas de las ejecuciones generales de las pruebas unitarias.

Usamos Visual Studio 2010 Ultimate con pruebas escritas en MSTest. Tanto nuestras pruebas unitarias como las pruebas de integración * están escritas en MSTest.

** Según nuestra definición, una prueba de integración es un MSTest TestMethod que toma un tiempo para ejecutarse y / o llama a componentes externos, como una base de datos o servicios web. *

Estoy buscando una forma de filtrar fácilmente las pruebas de integración para que solo se ejecuten las pruebas unitarias sin que también se ejecuten todas las pruebas de integración.

Mis ideas hasta ahora:

  1. Marque las pruebas de integración con el atributo [Ignore] . Esto funciona, pero es un verdadero problema cuando desea ejecutar las pruebas de integración.

  2. Asigne un atributo [TestCategory] a los diferentes tipos de prueba. Esto permite que se ejecuten por separado pero solo a través del panel Vista de prueba. No puede utilizar CTRL + R, A (Ejecutar todas las pruebas en solución) u otros atajos / teclas de acceso rápido similares.

  3. Las pruebas de integración se encuentran en un proyecto separado, ¿se podría hacer algo para evitar que se ejecuten en el nivel del proyecto? Siempre que sea fácil de cambiar.

  4. Escriba las pruebas de integración en un marco de prueba diferente, por ejemplo, NUnit. Esto los mantendría totalmente separados desde el punto de vista de las herramientas.

¿Alguien tiene alguna otra sugerencia? ¿Hay algún complemento que pueda ayudar con esto?


Si su proyecto de prueba de unidad se encuentra en un espacio de nombres separado, puede usar el método abreviado de teclado CTRL+R, T para ejecutar todas las pruebas en el contexto actual (es decir, el namespace MyApp.Tests.Unit ). Para hacer esto, coloque el cursor justo después de la llave de apertura en la cláusula de espacio de nombres de cualquier clase de prueba de unidad.


Tengo una sugerencia pero no te gustará.

Abandonar MSTest por completo, mientras que otros marcos de prueba de unidad han evolucionado MSTest casi deteniéndose en el tiempo. Sí, tiene un gran beneficio al integrarse directamente con VS, pero si no me equivoco, eso cambiará en VS 2011, que brindará soporte nativo para la integración de los corredores de prueba de unidades personalizadas.

(Nota: la parte detenida en el tiempo puede no ser cierta porque confieso no haber prestado mucha atención a MSTest ya que lo usé con moderación con VS 2008)

Utilizo NUnit y separo mis pruebas de unidad de las pruebas de integración utilizando un proyecto de biblioteca de clases diferente. Luego automatizo la ejecución de las pruebas utilizando el corredor de línea de comandos Gallio, lo que me permite configurar scripts separados para ejecutar pruebas de unidad e integración.

Por último, aparte de las opiniones personales, no estoy seguro, pero el complemento TestDriven.net puede tener soporte para ejecutar pruebas solo en una categoría específica, por lo que puede verificarlo.