1

在我创建域类时由 Grails 为我生成的集成测试类不扩展类 GroovyTestCase。但是,我已经看到许多作者推荐它(是一个使用该shouldFail方法的示例,它确实似乎有效)。

test-app但是,当我在交互式 Grails 控制台中运行时,从 GroovyTestCase 扩展我的测试类会导致以下错误消息:

Spring Loaded: Cannot reload new version of foo.barTests
Reason: Supertype changed from java/lang/Object to groovy/util/GroovyTestCase

这是我应该关心的事情吗?我在网上搜索过,找不到其他人抱怨这个错误,所以它可能是 Grails 2.2 的新内容。请指教。


我在 grails 交互式控制台中运行我的测试(当你grails没有参数运行时你会得到什么)。我已经让我的测试从 Object 继承了一段时间,但是当我运行时,test-app我仍然偶尔会将这些消息输出到 HTML 测试报告(“从 GroovyTestCase 更改为 Object”种类)。

4

1 回答 1

2

我很确定这是一个与 Grails 相关的错误

  1. AST 转换注释
  2. 弹簧加载模块

因为我也遇到过这种奇怪的行为。

导致这个问题的步骤似乎是一个 Groovy 类在没有转换的情况下编译一次,因此它是java.lang.Object.

当 AST 转换启动它时,该类将再次重新编译。这一次,它成为另一个类的子类。然后 Spring-loaded 无法将它们重新加载到内存中(因为 JVM 不允许同一个类重新定义其超类)。

于 2013-01-24T17:19:13.883 回答