2

Windows7とJDK1.7で実行されているGroovy/GrailsToolSuiteバージョン3.0.0M3を使用して作成したGrailsプロジェクトがあります。Grailsのバージョンは2.0.4です。

メソッド名を変更したり、新しいメソッドを追加したりして、テスト対象のクラスをリファクタリングするまで、正常に実行されていた単体テストクラスがあります。テスト対象のクラスは、src/javaの下のパッケージにあります。単体テストクラスはリファクタリングの変更を反映するように更新されましたが、grails test-appを実行すると、単体テストは「シンボルが見つかりません」というコンパイルエラーを報告します。これらのエラーはすべて、名前が変更されたメソッドまたは新しいメソッドのいずれかに関係します。追加しました。Tool Suiteは、プロジェクトエクスプローラペイン内にエラーマーカーを表示しないことに注意してください。

コマンドラインとToolSuite内の両方、およびTool Suiteproject->cleanコマンドからgrailscleanを実行しました。私のBuildConfig.groovyにはgrails.project.class.dirの正しいディレクトリが設定されており、その場所にあるクラスファイルがコンパイル後に更新されていることを確認しました。報告されるエラーメッセージの1つは次のとおりです

XMLUtilTest.java:73:エラー:シンボルが見つかりません

 Package pkg = u.unmarshalPackage(packageRefXml);
                ^

シンボル:メソッドunmarshalPackage(String)場所:XMLUtil型の変数u

4

1 に答える 1

0

次のことを試してください。

  1. プロジェクトで更新の依存関係を実行します。(プロジェクトの選択中にAlt + GR)テストを再実行します。働く?
  2. コマンドラインでtest-appを実行してみてください。それは機能しますか?
  3. テストを右クリックして実行する->JUnitテストを試すこともできます

私の推測では、STS内のgrailsは古いクラスのいくつかを使用しています。Eclipseプロジェクトはtarget-eclipse/classesその出力フォルダーに使用しますが、Grailsはデフォルトtarget/classesでその出力フォルダーに使用します。

プロジェクト内のコマンドラインで呼び出されたファイルに対してgrepを実行するとXMLUtil*.class、重複がどこにあるかがわかる場合があります。

于 2012-08-03T17:57:53.260 に答える