如何在Grails上运行Spock集成测试

如何在Grails上运行Spock集成测试,grails,spock,Grails,Spock,我的项目的技术堆栈是Grails 3.2.3、Groovy 2.4.7、Gradle 3.2.1,GORM和IDE是Intellij,后端是MongoDB。 我已经实现了Spock集成测试类TestControllerSpec,并希望运行单个Spock集成测试 运行单个测试用例需要哪些配置更改?如何更改 @Integration @Rollback class TestControllerSpec extends Specification { @Unroll void "te

我的项目的技术堆栈是Grails 3.2.3、Groovy 2.4.7、Gradle 3.2.1,GORM和IDE是Intellij,后端是MongoDB。 我已经实现了Spock集成测试类TestControllerSpec,并希望运行单个Spock集成测试 运行单个测试用例需要哪些配置更改?如何更改

@Integration
@Rollback
class TestControllerSpec extends Specification {

    @Unroll
    void "temp listObjects"(){        
        def result   
        def params = [id:  '123']
        when:
        result = controller.index(10)
        then:
        result == null
        result.size()==0
    }
}
使用命令行:

grails test-app -integration
或针对特定测试:

grails test-app com.best.company.BestTestClass -integration

如果您在IntelliJ中,您是否可以右键单击规范中的任意位置并告诉它运行该测试?您是否检查了grails spock集成上的?Gradle可以使用命令行参数模式(,)执行单个测试,例如
Gradle测试--tests org.Gradle.SomeTest.someSpecificFeature
如果这是从IntelliJ内部执行的,那么您可以使用IntelliJ Gradle集成,并使用IntelliJ中的上述
--tests
参数运行“测试”任务。task.leftShift(Closure)方法已被弃用,并计划在Gradle 5.0中删除。请改用Task.doLast(操作)。在build_cib62r8qsn00vq0cqu7xznhk6.run处(C:\MyProject\build.gradle:23)。***甚至第23行注释//应用插件:“org.grails.grails web”也不起作用获取以下错误************线程“thread-4”java.lang.IllegalStateException中的异常:java.lang.ApplicationShutdownHooks.add(ApplicationShutdownHooks.java:66)中正在关闭位于de.flapdoodle.embed.process.io.file.FileCleaner.forceDeleteOnExit(FileCleaner.java:52)处的de.flapdoodle.embed.process.io.file.Files.forceDelete(Files.java:125)处的de.flapdoodle.embed.process.extract.ExtractedFileSets.delete(ExtractedFileSets.java:76)在de.flapdoodle.embed.process.store.ExtractedArtifactStore.removeFileSet(ExtractedArtifactStore.java:147)在de.flapdoodle.embed.process.runtime.Executable(Executable.java:77)在de.flapdoodle.embed.process.runtime.Executable$JobKiller.run(Executable.java:90)在java.lang.Thread.java:745:mergetestreports从stacktrace信息中删除报告文件似乎有问题。活板门和mongo有什么关系吗?我相信答案可以在给定stacktrace中类的源代码中找到。