Las pruebas pueden fallar intermitentemente por una serie de razones e identificar por qué fallan es a menudo revelador acerca de la base de código y el entorno.
Estas son algunas de las causas posibles:
• Los objetos compartidos - únicos que sostienen estado puede causar problemas entre las pruebas si el entorno de prueba no se restablece a un estado conocido. si si su corredor de prueba ejecuta pruebas en un orden no determinista es posible que vea errores aleatorios que realmente están exponiendo dañados cuestiones estatales
• dependencias ambientales y externos - cualquier objeto externo que puede contener el estado puede provocar resultados impredecibles
• Temporización: algunas veces las pruebas se escriben con tiempos de espera o tiempos de subproceso que son demasiado específicos. Si el servidor de compilación está operando bajo una carga pesada estos tiempos de espera pueden no ser lo suficientemente
Como orientación general de largo, las pruebas deben ser:
- aislados: Las pruebas se centran en una unidad a la vez
- repetible: produce los mismos resultados cada vez
- independiente: el orden en que se ejecutan las pruebas no debe importar
archivos esperados siendo bloqueadas temporalmente? ¿Se encuentra con problemas con pruebas de múltiples hilos en un CI de alta potencia que no ocurre en las máquinas de desarrollo? problemas temporales de red que bloquean las cosas? hay muchas cosas que pueden causar fallas en la prueba de unidades difíciles de seguir ... todo es parte de la resolución de problemas. ¿Son las mismas pruebas las que prueban ser problemáticas? – TZHX