Tenemos un Groovy Script que sale con un status
de 0
cuando todo funcionó y un non-0 status
para diferentes tipos de condiciones de falla. Por ejemplo, si el script tomó un usuario y una dirección de correo electrónico como argumentos, saldría con un status
de 1
para un usuario no válido y un status
de 2
para un formato de dirección de correo electrónico no válido. Usamos System.exit(statusCode)
para esto. Esto funciona bien, pero hace que el guión sea difícil de escribir.Cómo establecer el estado de salida en un Groovy Script
En una prueba creamos nuestro GroovyShell
, cree nuestro Binding
y llame al shell.run(script,args)
. Para las pruebas que afirman las condiciones de falla, el System.exit()
hace que la JVM (y la prueba) salgan.
¿Hay alternativas al uso de System.exit()
para salir de Groovy Script? Experimenté con lanzar excepciones no capturadas, pero que estorba la salida y siempre hace que el código de estado 1.
En nuestros casos de prueba También he experimentado con el uso System.metaClass.static.invokeMethod
para cambiar el comportamiento de System.exit()
a no salir de la JVM, pero que parece como un feo truco.
Gracias. Limpié nuestro trabajo 'System.metaClass.static.invokeMethod' y parecía mucho menos hacky. – Patrick