franciscogazitua / IIC2113-2024

Consultas sobre el proyecto en las Issues
2 stars 0 forks source link

Problema con los tests #122

Open jpedrodelrio opened 1 week ago

jpedrodelrio commented 1 week ago

Hola! Luwgo de implementar MVC, corro todos los Units test y me aparecen como "failed", pero si los corro uno por uno manualmente estos si están correctos, a que se puede deber esto.

Muchas gracias

RodrigoToroIcarte commented 1 week ago

Podría ser esto: https://github.com/franciscogazitua/IIC2113-2024/issues/41

jpedrodelrio commented 1 week ago

Pero no tengo ninguna atributo static en mi código. Entonces no sé que más podría estar sucediendo. Y lo raro es que solo pasan los test de InvalidCombat.

RodrigoToroIcarte commented 1 week ago

¿Si corres un solo test que falla (de manera individual) te funciona? (hay que hacer click derecho sobre un test individual y poner Run Selected Unit Test)

jpedrodelrio commented 1 week ago

Si corro cada test de manera individual si funciona, pero al correr todos los test me aparece que se cae cuando debiese pedir Player 1 selecciona una opcion.

RodrigoToroIcarte commented 1 week ago

En todos mis años enseñando el curso, el 100% de las veces que a un estudiante le ha pasado eso es porque tiene algún atributo static dando vuelta por ahí :/

¿Estás muy seguro que ese no es el caso? Notar que al atributo static puede estar en el controlador, la vista o el modelo. En cualquier parte que esté te puede ocasionar este tipo de error.

jpedrodelrio commented 1 week ago

Como atributo no tengo ninguno static, solo tengo factory como clases static, como la que verifica las condiciones de cada skill para ver si se puede aplicar. De esta forma: image

No se si eso es lo que está causando problemas.

RodrigoToroIcarte commented 1 week ago

No debería. Sobretodo considerando que esa factory probablemente esté ahí desde hace mucho rato y antes sí te funcionaban los test cases.

¿Qué cambiaste cuando te dejaron de funcionar?

jpedrodelrio commented 1 week ago

Literal estaba modificando el proyecto para adaptarlo a MVC y lo unico que cambie o hice de nuevo fue como inicializaba los jugadores al leer los arechivos .json.

RodrigoToroIcarte commented 1 week ago

Pucha, necesito más información para saber cuál es el problema :/

Cuando un test pasa individualmente pero falla al correr todos los test cases es porque al correr los tests en paralelo (usando multiples threads) tu aplicación muere por algún motivo. Eso ocurre cuando los threads no son 100% independientes. Onda, que estén mirando a los mismos recursos. Cuando se tienen atributos static ocurre eso. El valor de ese atributo es el mismo en todos los threads, entonces cambiarlo en un thread (i.e., test) hace que se cambie en todos los otros.

Otro ejemplo es que modifiques un archivo que otro thread está leyendo. Onda, si guardaras algo en un txt para luego leerlo, fallaría porque otro thread (al mismo tiempo) también va a guardar y leer del mismo archivo. Pero no creo que estés haciendo algo tan rebuscado como eso :/

... igual qué error te tiran los tests? me dijiste que era algo relacionado a los jugadores -- que es la parte que editaste, o no?

jpedrodelrio commented 1 week ago

este es el error que me tira cuando hago Debug Unit Test: image

RodrigoToroIcarte commented 1 week ago

Creo que eso no es un error. Es un break point que pusiste en la línea 28.