2011-08-23 28 views
5

Contexto: escritura de pruebas de unidad Scala en un proyecto gestionado por SBT.Obtención de un seguimiento de pila de SBT con Scala

Cuando ejecuto sbt test el funcionamiento de mi unidad de pruebas una aserción falla en alguna parte de mi código, me sale algo como lo siguiente (y nada más):

Test com.reach.ml.test.TestLSHEasy.T0 failed: assertion failed 

Esto me dice qué unidad de prueba causó la afirmar que falla, pero no que afirman que fue. Si ejecuto la misma prueba directamente (sin usar sbt), obtengo un seguimiento completo de la pila, que es muy útil para la depuración. Entonces mi pregunta es: ¿cómo hago que SBT imprima el seguimiento de la pila cuando falla una prueba?

+0

¿La 'última prueba' no muestra todos los resultados de la ejecución de la prueba? – Geo

+0

No, la totalidad de la salida relacionada con la prueba cuando las cosas funcionan es: "" " [información] Pasado:: Total 9, Error 0, Errores 0, Pasó 9, Omitió 0 [éxito] Tiempo total: 9 s , completado 22 de agosto de 2011 11:33:29 PM "" " Si hay un error, solo aparece la línea que primero publiqué y otra que dice básicamente lo mismo. – emchristiansen

+0

¿Qué significa Geo significa que, cuando 'test' falla con excepción en SBT, no escribe 'last test' entonces muestra la excepción completa? –

Respuesta

2

Con respecto a xsbt, podría estar relacionado con el objeto util.log.StackTrace que puede recortar su salida.
El issue 118 ilustra la voluntad de mantener trazas de la pila debe estar bajo un mejor control:

por lo que no hay que ver que traza por defecto.

Tal vez usted puede envolver su unidad de prueba, interceptando ninguna excepción, e imprimir expresamente su plena seguimiento de la pila? (como en Basic.scala o Boot.scala).

+1

Gracias. Parece que los desarrolladores se salieron un poco al intentar limpiar la impresión de errores. En cualquier caso, SBT es una gran herramienta y el ajuste con bloques de prueba/captura, aunque no es ideal, no es difícil. – emchristiansen

Cuestiones relacionadas