2013-05-10 1 views
0

Мне нужно определить, находится ли мое приложение Grails в настоящее время. Я не могу использовать if (Environment.getCurrent() == Environment.TEST), потому что моя текущая среда Environment.CUSTOM с именем jenkins. Есть ли другой способ узнать, тестируется ли он в настоящее время?Как определить, тестируется ли приложение Grails?

ответ

2

Один из подходов, которые я использовал, - это установить переменную окружения, подключившись к событию GANT eventTestPhaseStart. Вы можете сделать это, создав сценарий с именем Events.groovy в /scripts.

<project dir>/scripts/Events.groovy:

eventTestPhaseStart = { args -> 
    System.properties['grails.testPhase'] = args 
} 

Вы можете использовать его как можно так определить, является ли приложение на стадии тестирования:

if (System.properties['grails.testPhase'] != null) 
    println "I'm testing!" 

Вы также можете использовать его, чтобы иметь определенное поведение для конкретной тестовой фазы:

if (System.properties['grails.testPhase'] == 'integration') 
    println "Do something only when running integration tests." 
+0

Спасибо, это подход, который я искал. Я надеялся, что есть что-то уже встроенное. –