1

ドメイン クラスを作成したときに Grails によって生成された統合テスト クラスは、クラス GroovyTestCase を拡張しません。ただし、多くの著者が推奨しているのを見てきました(実際shouldFailに機能するように見える方法を使用するための例を次に示します)。

しかし、GroovyTestCase からテスト クラスを拡張するtest-appと、対話型の Grails コンソールで実行すると、次のエラー メッセージが表示されます。

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

これは私が心配すべきことですか?私はオンラインで検索しましたが、このエラーについて不平を言っている他の人を見つけることができないので、Grails 2.2 で何か新しいことかもしれません。お知らせ下さい。


grailsgrails インタラクティブ コンソールでテストを実行しています (引数なしで実行すると得られるもの)。しばらくの間、テストを Object から継承したままにしましたが、実行するtest-appと、HTML テスト レポート (「GroovyTestCase から Object への変更」の種類) にそれらのメッセージが出力されることがあります。

4

1 に答える 1

2

私はそれが関連するGrailsのバグだと確信しています

  1. AST 変換の注釈
  2. バネ仕掛けのモジュール

私もこの奇妙な行動に遭遇したので。

この問題の原因となった手順は、Groovy クラスが変換なしで 1 回コンパイルされるため、java.lang.Object.

AST 変換がそれを開始すると、クラスは再び再コンパイルされます。今度は、別のクラスのサブクラスになります。その後、Spring-loaded はそれらをメモリに再ロードできません (JVM は同じクラスがそのスーパー クラスを再定義することを許可しないため)。

于 2013-01-24T17:19:13.883 に答える