Pensando en esta pregunta en un idioma agnóstica, rendimientos manner marco agnóstica que lo que pido es un poco un enigma:
El instrumento de medida no tendrá ninguna idea sobre el tiempo de ejecución de cualquiera de la unidad prueba hasta que se ejecuten; porque esto depende no solo de la herramienta de prueba y las pruebas en sí, sino también de la aplicación bajo prueba. La solución provisional para esto sería hacer cosas como establecer un límite de tiempo. Si haces esto, entonces surge la pregunta, cuando una prueba expira, ¿se debe pasar, fallar o tal vez pertenecer a alguna otra (tercera) categoría? ... ¡Enigma!
Por lo tanto, para evitar esto, sugiero que adopte una estrategia diferente en la que, como desarrollador, decida qué subconjuntos de todo el conjunto de pruebas desea ejecutar en diferentes situaciones. Por ejemplo:
- Un conjunto de humo pruebas;
- es decir, las pruebas que desea ejecutar primero todo el tiempo. Si alguno de estos falla, entonces no desea molestarse en ejecutar ninguna de las pruebas. Coloque solo las pruebas fundamentales en este grupo.
- A mínimo conjunto de pruebas;
- Para su requisito específico de esto sería un conjunto de pruebas que contienen todos los "rápidos" o "rápidos" pruebas, y determinar cuáles son.
- A integral conjunto de pruebas;
- Las pruebas que no pertenecen a ninguna de las otras categorías. Para su requisito específico, estas serían las pruebas "lento" o "largo".
Cuando se ejecuta sus pruebas, a continuación, puede elegir cuál de estos subconjuntos de pruebas para correr, tal vez la configuración de alguna forma de una secuencia de comandos.
Utilizo este enfoque para tener un gran efecto en las pruebas automatizadas (integradas en un sistema de integración continua). Hago esto teniendo una secuencia de comandos que, dependiendo de los parámetros de entrada, decidiría ejecutar solo pruebas de humo más pruebas mínimas; o, alternativamente, pruebas de humo, pruebas mínimas y pruebas integrales (es decir, todas ellas).
HTH
¿Cuánto dura "un largo tiempo"? ¿No puedes hacer las pruebas más rápido? Es mucho mejor si puede ejecutar todas sus pruebas regularmente y que cada una de ellas se puede ejecutar rápidamente. De lo contrario, probablemente te olvides de ejecutar aquellos cuya duración es demasiado grande –
Lo sé, pero las pruebas son buenas y quiero omitirlas de forma predeterminada cuando ejecuto la prueba de forma manual y dejar que el servidor las ejecute después de verificar. –
Por ejemplo, una buena prueba que lleva mucho tiempo es una compilación en verificación de calibración para la elevación de eventos PropertyChanged que lleva 3 segundos. –