从grails 2.3升级到2.5后,单元测试无法运行

时间:2015-06-09 16:33:45

标签: unit-testing grails junit spock gvm

将一个相当大的应用程序从Grails 2.3.11升级到Grails 2.5.0,我的工作大部分都在工作。集成测试运行,加载大量夹具数据的run-app运行良好,应用程序似乎在探索性测试中运行良好,但单元测试根本不会运行。

错误和堆栈跟踪对我来说并不是很有帮助,并且对Google的结果没有太多帮助,所以我想知道是否有人对正在发生的事情有任何想法。

当我运行grails test-app unit:时,错误几乎立刻就会抛出:

Error running unit tests: org.spockframework.extension.ReportExtension.start()
...
| Error Exception in thread "org.spockframework.runtime.RunContext.stop()" 
| Error java.lang.AbstractMethodError: org.spockframework.extension.ReportExtension.stop()V
| Error     at org.spockframework.runtime.GlobalExtensionRegistry.stopGlobalExtensions(GlobalExtensionRegistry.java:111)
| Error     at org.spockframework.runtime.RunContext.stop(RunContext.java:67)
| Error     at org.spockframework.runtime.RunContext.access$000(RunContext.java:30)
| Error     at org.spockframework.runtime.RunContext$2.run(RunContext.java:159)

我已经尝试删除所有单元测试并一次更换一个,但没有运气。此外,我已经使用grails clean进行了大量清理并删除了.grails目录和那些类型的东西,以确保我没有使用一些旧的spock插件,因为应用程序确实使用了它,但是, 没运气。即使只使用新安装的脚手架模板中的一个新生成的单元测试运行也存在同样的问题。如果没有单元测试,它就不会抱怨。

有趣的是,一个新创建的应用程序似乎也不能很好地工作,但我无法判断问题是否相关。在该应用程序中只有3个域和测试全部使用grails generate-domain-class生成,输出看起来像这样:

| Running 3 unit tests... 1 of 3
| Failure:  initializationError(org.junit.runner.manipulation.Filter)
|  java.lang.Exception: No tests found matching grails test target pattern filter from org.junit.runner.Request$1@5ea22f37
at org.junit.internal.requests.FilterRequest.getRunner(FilterRequest.java:40)
at org.junit.runner.JUnitCore.run(JUnitCore.java:115)
| Completed 1 unit test, 1 failed in 0m 0s

由于问题似乎有点可能与我的系统和我的Grails安装有关,我将添加我运行的Ubuntu,通过GVM安装Grails

1 个答案:

答案 0 :(得分:0)

我的主应用程序问题是lib文件夹中的旧Spock jar。那是在做什么......我甚至都不知道。我没有想过要去看那里。

仍然没有解释新创建的应用程序的奇怪输出,所以请随意加入!