我想在我的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".我究竟做错了什么?
我不确定运行功能测试时确切的类路径设置是什么,但我怀疑它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
| 归档时间: |
|
| 查看次数: |
592 次 |
| 最近记录: |