Grails 2.4升级问题来自在app启动时调用的2.2测试事件

时间:2015-02-13 14:53:32

标签: grails testing upgrade

在应用程序启动时,正在调用_events脚本中的eventTestPhasesStart事件代码。执行runapp时,事件代码中引用的测试类不可用,这会导致启动时未解决的类错误。

  • 无法解析类org.codehaus.groovy.grails.test.spock.GrailsS​​pecTestType
  • 无法解析课程 - org.codehaus.groovy.grails.test.junit4.JUnit4GrailsTestType
  • 无法解析课程org.codehaus.groovy.grails.test.runner.phase.IntegrationTestPhaseConfigurer

此代码也无法在分叉模式下运行,这迫使我们关闭分叉模式以运行集成测试,这意味着我们无法使用调试器来调试Grails 2.4现在需要的测试。

以下是事件代码:

eventTestPhasesStart = {phasesToRun - >     println“设置inmem阶段”     phasesToRun<< “inmem”

def inmemPhaseConfigurer = new IntegrationTestPhaseConfigurer(projectTestRunner.projectTestCompiler, projectLoader)
projectTestRunner.testFeatureDiscovery.configurers.inmem = inmemPhaseConfigurer

def inmemtestTypeName = "inmem"
def inmemtestDirectory = "inmem"
def inmemtestMode = new GrailsTestMode(autowire: true, wrapInTransaction: true, wrapInRequestEnvironment: true)


inmemTestTypes = []
inmemTestTypes << (new GrailsSpecTestType(inmemtestTypeName+"Spock", inmemtestDirectory, inmemtestMode))
inmemTestTypes << (new JUnit4GrailsTestType(inmemtestTypeName+"JUnit", inmemtestDirectory, inmemtestMode))

projectTestRunner.testFeatureDiscovery.testExecutionContext.inmemTests = inmemTestTypes 

}

在分叉模式下运行时,再次调用此事件时/不应该导致动态属性(例如找不到projectTestRunner)。

有没有办法防止这个脚本在不应该执行时执行?

谢谢

0 个答案:

没有答案