如何判断Grails应用程序是否正在测试中?

时间:2013-05-10 11:12:14

标签: testing grails spock

我需要确定我的Grails应用程序目前是否正在测试中。我无法使用if (Environment.getCurrent() == Environment.TEST),因为我当前的环境是名为jenkins的Environment.CUSTOM。还有其他方法可以确定它目前是否正在测试中?

1 个答案:

答案 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."