1

将一个相当大的应用程序从 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

4

1 回答 1

0

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

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

于 2015-06-09T21:18:18.340 回答