Pregunta

estoy desarrollando algún proyecto con CodeIgniter y pruebas de la unidad de escritura y pruebas web en SimpleTest. Me he dado cuenta que mis pruebas no son deterministas, es decir, que producen diferentes resultados en el tiempo. Me refiero a los casos de prueba que deben ser estrictamente determinista, no depender de variables aleatorias, etc.

Las pruebas se parece afectar a los demás. Muy a menudo, cuando todo va bien, tengo digamos 100 pruebas pasadas, pero cuando escribo un nuevo método de prueba que falla, entonces varias otras pruebas también no llego. Pero a menudo después de corregir el problema en mi caso de prueba en su defecto y volver a ejecutar el banco de pruebas entera 2-3 veces conjunto de baño da un pase de nuevo.

Esto sucede con WebTestCases en general.

¿Tiene usted alguna idea de lo que podría ser el problema?

Yo no modificar las variables de clase que son compartidos, etc.

Me he vista en el código de SimpleTest (más o menos, que es grande para analizar el flujo de toda rapidez) y parece que la instancia del navegador se vuelve a crear antes de lanzar diferentes pruebas.

Lo que es el más extraño es que después de volver a ejecutar, algunos errores desaparecen, y, por último, a todos ellos. ¿Hay alguna almacenamiento en caché involucrado en esto?

estaré agradecido por consejos que realmente no hay mucha documentación / entradas de blog / mensajes en el foro sobre SimpleTest en la web, a excepción de su API en el sitio web.

¿Fue útil?

Solución 2

(edit: movido la respuesta como un post aparte)

¿Eh, he hecho una investigación bastante completo y parece que hay un error en la biblioteca SimpleTest.

Utilizan fsockopen para la apertura de conexión, a continuación, enviar solicitud a través de fwrite, y luego se ha podido recuperar incorrectamente respuesta de socket. Lo que quiero decir: puede suceder que se lee 0 bytes de zócalo, pero no hemos terminado, ya que asumen erróneamente, que el servidor puede estar ocupado, y enviar los datos más tarde, mientras que terminó prematuramente lectura. De esa manera, no hemos leído la respuesta entera y hacer pruebas en contra de la respuesta sólo parcial, provocando que falle.

Otros consejos

Las cosas que podría ser:

  • El almacenamiento en caché - que están depositando malos resultados en algún lugar de la cadena?
  • El malentendido - ¿Está seguro de que están probando las cosas correctas?
  • Bad datos - Si está probando en este la parte superior de una base de datos, y el fracaso corrompido los datos en la base de datos, es posible que vea los resultados como usted mención.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top