2012-04-12 19 views
26

Tenemos pruebas MSTest que se ejecutan automáticamente en producción por hora. Una de estas pruebas está marcada con el atributo [Ignore] porque todavía no está lista para ejecutarse en nuestro entorno de producción.
Ahora quiero comenzar esa prueba (solo) en mi entorno local porque mi entorno local está listo para esa prueba.
trato de ejecutar la prueba haciendo clic en el icono de ReSharper en el lado izquierdo de código de prueba o haciendo clic ejecución seleccionados pruebas icono en Unidad sesiones de prueba ventana y no pasa nada.Ignorar IgnoreAttribute

Lo soluciono actualmente comentando la línea [Ignore]. Pero ahora tengo que ser consciente de eliminar los caracteres de comentarios (//) antes de registrar el código.

¿Hay alguna otra forma de ejecutar temporalmente una prueba [Ignore] 'd?

+1

Lo extraño es que esto nunca ocurrió antes que nosotros. Con VS2010 y R # 6 podríamos ejecutar una prueba ignorada haciendo clic en la bola izquierda sobre el código y ejecutando "Ejecutar". –

Respuesta

27

Recientemente, cuando me he encontrado con problemas como este, añado un nuevo Build Configuration algo al proyecto de Visual Studio llamado como "desarrollador de depuración local" y utilizar los ajustes de la configuración de depuración existente. Luego voy a "Proyecto -> Propiedades de MyProjectName -> Build", me aseguro de que "Local Debug Developer" sea la configuración seleccionada y agregue "LOCALDEVBUILD" a "Conditional compliation symbols". Esto permite el uso de directivas de preprocesador de código 'alternar' en tiempo de compilación:

#if (!LOCALDEVBUILD) 
    [Ignore] 
#endif 

No estoy seguro si esto es lo que está buscando ... pero le permite ejecutar/utilizas código específico en función de las intenciones de la compilación (a través de la configuración de compilación) ... Con este método puede dejar la prueba ignorada para compilaciones más 'oficiales', pero aún ejecutarla cuando lo desee si lo desea.

2

Parece que hay otras formas de habilitar/deshabilitar las pruebas con el archivo testrunconfig. Sin embargo, si usa IgnoreAttribute, compila con el código y, por lo tanto, no se puede alternar fácilmente.

Desde el documentation:

El Ignorar atributos para una unidad de prueba reside en el archivo de origen de la prueba de la unidad, junto con los otros atributos y código fuente de la prueba. Esto significa que, si inhabilita una prueba unitaria en la ventana del Administrador de pruebas y luego ejecuta la prueba utilizando la utilidad de línea de comandos MSTest.exe, la prueba aún se ejecuta. Pero si marca una prueba unitaria con el atributo Ignorar, compila el ensamblado y luego ejecuta la prueba utilizando MSTest.exe, la prueba no se ejecuta. No se ejecuta porque el atributo Ignorar se ha convertido en parte de la prueba.

+2

OP quiere lo contrario de esta característica. Esto solo le permite a uno ignorar una prueba localmente, pero no ignorarla durante las pruebas automatizadas.OP desea continuar ignorando la prueba durante las pruebas automatizadas, pero no ignorarla localmente. – Alain

18

También puede usar un test category para marcar los métodos de prueba que no desea incluir en su prueba automatizada, p.

[TestCategory("IgnoreOnBuild")] 

Por lo tanto, no se utiliza el atributo [Ignorar]. Y combinar esto con un filtro en la definición de la acumulación, bajo Básico -> Automated Test -> Fuente de prueba -> Filtro caso de prueba:

TestCategory!=IgnoreOnBuild 
+0

Y dentro de la ventana del Administrador de pruebas de Visual Studio, puede filtrar por 'Rasgo:" IgnoreOnBuild "' (use '-Trait:" IgnoreOnBuild "' para excluirlos) –