Как установить статус выхода в Groovy Script

У нас есть сценарий Groovy, который завершается со статусом 0 , когда все работает, и ] не-0 статус для различных типов условий отказа. Например, если сценарий принимает в качестве аргументов пользователя и адрес электронной почты, он завершится со статусом из 1 для недопустимого пользователя и статусом из 2 из-за недопустимого формата адреса электронной почты. Для этого мы используем System.exit (statusCode) . Это работает нормально, но затрудняет написание тестовых примеров для сценария.

В тесте мы создаем наш GroovyShell , создаем нашу Binding и вызываем shell.run (script, args) . Для тестов, которые подтверждают условия сбоя, System.exit () вызывает завершение работы JVM (и теста).

Есть ли альтернативы использованию System.exit () для выхода из Groovy Script? Я экспериментировал с выдачей неперехваченных исключений, но это загромождает вывод и всегда дает код состояния 1.

В наших тестовых примерах я также экспериментировал с использованием System.metaClass.static.invokeMethod для изменения поведения of System.exit () , чтобы не выходить из JVM, но это выглядит уродливым взломом.

17
задан Patrick 16 February 2012 в 17:39
поделиться