没有加载Spock GlobalExtension(grails)

Mor*_*itz 8 grails spock geb

我想在我的grails-app中为所有spock geb规范注册一个Listener,所以我在myapp/src/groovy中添加了一个IGlobalExtension

package myapp.spock

class TakeScreenshotExtension implements IGlobalExtension {
    @Override
    void visitSpec(SpecInfo specInfo) {
        System.err.println "ADDING LISTENER"
        specInfo.addListener(new TakeScreenshotOnFailureListener())
    }
}
Run Code Online (Sandbox Code Playgroud)

然后我将org.spockframework.runtime.extension.IGlobalExtension文件添加到myapp/src/resources/META-INF /包含该行的服务

myapp.spock.TakeScreenshotExtension
Run Code Online (Sandbox Code Playgroud)

所以现在根据我的理解,当运行grails test-app functional:时,应该加载Extension,但是我没有在输出中的任何地方看到"ADDING LISTENER".我究竟做错了什么?

erd*_*rdi 1

我不确定运行功能测试时确切的类路径设置是什么,但我怀疑它myapp/src/resources/META-INF/services/org.spockframework.runtime.extension.IGlobalExtension可能不会添加到测试类路径中,因此 Spock 不知道您的扩展。我会尝试将该文件移到下面,同时myapp/test/functional/META-INF/services/org.spockframework.runtime.extension.IGlobalExtension将扩展类移到下面。myapp/test/functional