我需要确定我的Grails应用程序目前是否正在测试中。我无法使用if (Environment.getCurrent() == Environment.TEST)
,因为我当前的环境是名为jenkins的Environment.CUSTOM
。还有其他方法可以确定它目前是否正在测试中?
答案 0 :(得分:2)
我使用的一种方法是通过挂钩eventTestPhaseStart
GANT事件来设置环境变量。您可以通过在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."