1

IntelliJ IDEA 内から「test-app」ターゲットを実行するときに grails 2.2.4 から grails 2.3.1 にアップグレードした後、単体テストをコンパイルするときに複数の「クラスを解決できません」というエラーが発生します。

| Error Compilation error compiling [unit] tests: startup failed:
/mnt/hgfs/Projekte/javandry/minigolf-webapp/test/unit/de/javandry/minigolf/webapp/controller/BallControllerTests.groovy: 3: unable to resolve class de.javandry.minigolf.webapp.Ball
@ line 3, column 1.
import de.javandry.minigolf.webapp.Ball
^

アプリケーション自体のすべてのクラスが単体テスト内から見えないようです。コマンドラインからターゲットを実行すると、すべて問題ありません。

私はすでにしようとしました:

  • $USER_HOME/.grails/2.3.1/projectsディレクトリを削除します
  • grails.project.work.dir = "target"に設定BuildConfig.groovy
  • $PROJECT_HOME/targetディレクトリを削除します
  • 「test-app」の前に「clean」および「clean-all」ターゲットを実行します
  • 「test-app」のフォーク実行を無効にする

エラーは引き続き表示されます。

今、私は他に何を試すことができるかというアイデアを使い果たしました。

そこに何かアイデアはありますか?

4

1 に答える 1

2

何度も何度も試した後、最終的に単体テストをコンパイルしました。

私の実行構成では-clean、クリーン ビルドを強制するオプションを使用して「test-app」ターゲットを呼び出しました。ログ出力とターゲット ディレクトリによると、grails はターゲット ディレクトリを消去しますが、その後メイン クラスをコンパイルしません。そのため、ターゲット ディレクトリには、単体テストのコンパイル時にエラーが発生するクラス サブディレクトリが含まれていません。

実行構成からオプションを削除すると-clean、grails ビルドはメイン クラスをコンパイルし、その後、単体テストに成功します。以前はコマンドラインでこのオプションを使用したことがなかったので、IntelliJ でエラーを探すことになりました。

コマンドラインで新しいテストプロジェクトを使用していくつかのテストを行いました。grails test-app失敗したプロジェクトを正常にビルドしgrails test-app -cleanます。GRAILS-10642で、grails 2.3.2 で修正する必要がある同様の動作が記述されていることがわかりました。

于 2013-10-28T20:10:10.437 に答える