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



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

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

当我运行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, Grails是通过GVM安装的

我的主应用程序的问题是lib文件夹中的旧Spock jar。它在那里做什么……我都不知道。我以前没有想到去那儿看一看。

仍然无法解释新创建的应用程序的奇怪输出,所以请随意插话!

相关内容

  • 没有找到相关文章

最新更新