Prueba unitaria en juego! Aplicación Framework que no requiere un servidor de Test Play

StackOverflow https://stackoverflow.com/questions/6367690

  •  28-10-2019
  •  | 
  •  

Pregunta

¡Una opción para ejecutar mis pruebas en mi juego! La aplicación es ejecutando el comando play auto-test.

Una de las formas en que el juego parece identificar las pruebas para ejecutar es encontrar todas las clases de prueba con la súper clase play.test.UnitTest (u otro equivalente de juego). Tener una clase de prueba se extiende UnitTest Parece venir con algo de sobrecarga como se muestra por este poco de cosas escupidas en la consola:

INFO   info, Starting C:\projects\testapp\.
WARN   warn, Declaring modules in application.conf is deprecated. Use dependencies.yml instead (module.secure)
INFO   info, Module secure is available (C:\play-1.2.1\modules\secure)
INFO   info, Module spring is available (C:\projects\testapp\.\modules\spring-1.0.1)
WARN   warn, Actually play.tmp is set to null. Set it to play.tmp=none
WARN   warn, You're running Play! in DEV mode
INFO   info, Connected to jdbc:h2:mem:play;MODE=MYSQL;LOCK_MODE=0
INFO   info, Application 'Test App' is now started !

Obviamente, tener un entorno de juego para pruebas que requieren dicha configuración es útil, sin embargo, si tengo una clase de prueba que prueba el código de producción que ejecuta lógica que no requiere un entorno de juego, no quiero tener que extender UnitTest para que pueda evitar la sobrecarga de iniciar un entorno de juego.

Si tengo una clase de prueba que no se extiende UnitTest entonces no es ejecutado por el comando play auto-test. ¿Hay alguna forma de obtener el play auto-test comandar ejecutar todas las pruebas independientemente de si extiendo los juegos UnitTest?

Editar: Alguien ha criado un boleto Para este mismo problema

¿Fue útil?

Solución

La respuesta corta: no. Una respuesta más larga: no a menos que cambie el código en el marco. El Autotest es una tarea de hormiga que establece el servidor y desencadena las pruebas, pero no está utilizando la tarea de hormiga, por lo que no detectará (por defecto) sus pruebas unitarias 'normales'.

Tiene dos opciones: o agrega una tarea adicional al archivo de hormiga de juego para ejecutar pruebas unitarias a través de la tarea (también deberá incluir los frascos relevantes) o editar el código utilizado para iniciar el entorno de prueba de juego.

Ambos implican cambiar el marco a cierto nivel. Aunque dando que estás usando juego, me pregunto por qué no deberías hacer que todas tus pruebas sigan el patrón de juego ...

Otros consejos

¡Si estas pruebas no requieren ninguna jugada! Característica, ¿por qué no los pones en una biblioteca? Con su ejemplo (Math ADD): cree un paquete calculador.jar y cree con hormiga o maven después de ejecutar pruebas. ¡Así, puedes usar tu biblioteca en varios juegos! Proyectos (o primavera, puntales, ... si quieres.

Realmente no entiendo por qué el problema en sí es incluso discutible. Tener pruebas unitarias simples y pequeñas (incluso en la parte web de su proyecto) es lo más normal. La sobrecarga adicional de la inicialización del marco ralentiza significativamente sus viajes redondos si tiene muchas pruebas. Como se puede ver en el boleto, la solución actual es Haga que sus pruebas unitarias se extiendan org.junit.assert en lugar de play.test.unittest

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top