c# - Ignorar IgnorarAtributo
mstest resharper-5.1 (3)
Parece que hay otras formas de habilitar / deshabilitar pruebas usando el archivo testrunconfig. Sin embargo, si utiliza el atributo Ignore, se compila con el código y, por lo tanto, no se puede alternar fácilmente.
De la documentation :
El atributo Ignorar para una prueba de unidad reside en el archivo fuente de la prueba de unidad, junto con los demás atributos y el código fuente de la prueba. Esto significa que, si deshabilita una prueba de unidad 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 de unidad con el atributo Ignorar, compila el ensamblaje 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.
Tenemos pruebas MSTest que se ejecutan automáticamente en la producción por hora. Una de estas pruebas está marcada con el atributo [Ignore]
porque aún no está listo para ejecutarlo en nuestro entorno de producción.
Ahora quiero iniciar esa prueba (solo) en mi entorno local porque mi entorno local está listo para esa prueba.
Intento ejecutar esa prueba haciendo clic en el ícono de ReSharper en el lado izquierdo del código de prueba o haciendo clic en el ícono Ejecutar pruebas seleccionadas en la ventana de Sesiones de prueba de unidad y no sucede nada.
Lo arreglé actualmente comentando la línea [Ignore]
. Pero ahora debo estar atento para eliminar los caracteres del comentario ( //
) antes de ingresar el código.
¿Hay otra manera de ejecutar temporalmente una prueba [Ignore]
d?
Recientemente, cuando he encontrado problemas como este, agrego una nueva configuración de compilación al proyecto de estudio visual llamado algo como "Depuración del desarrollador local" y uso la configuración de la configuración de depuración existente. Luego voy a "Proyecto -> Propiedades de MyProjectName -> Build", me aseguro de que "Local Developer Debug" sea la configuración seleccionada y añada "LOCALDEVBUILD" a "Símbolos de cumplimiento condicional". Esto permite el uso de directivas de preprocesador para ''alternar'' el código en el momento de la compilación:
#if (!LOCALDEVBUILD)
[Ignore]
#endif
No estoy seguro de si esto es lo que está buscando ... pero le permite ejecutar / utilizar código específico dependiendo 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 Más compilaciones ''oficiales'', pero aún así, ejecútalo a tu antojo si así lo deseas.
También puede usar una categoría de prueba para marcar los métodos de prueba que no desea que se incluyan en su prueba automatizada, por ejemplo,
[TestCategory("IgnoreOnBuild")]
Por lo tanto no se usa el atributo [Ignorar]. Y combine esto con un filtro en su definición de construcción, en Básico -> Prueba automatizada -> Fuente de prueba -> Filtro de caso de prueba:
TestCategory!=IgnoreOnBuild