0

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

4

1 回答 1

2

我使用的一种方法是通过挂钩eventTestPhaseStartGANT 事件来设置环境变量。您可以通过创建一个名为Events.groovyin的脚本来做到这一点/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."
于 2013-05-10T14:25:09.893 回答