3

私は大規模な grails プロジェクトをいくつかの「インプレース」プラグインに分割して、物事を適切にモジュール化するようにしています。「コア サービス」と呼ばれる私のプラグインの 1 つは、すべてのドメイン クラスと、いくつかの単体テストで共有される抽象テスト クラス (モック ドメイン インスタンスの追加など) でのいくつかの優れたセットアップ作業を含みます。

これは、プラグインにも存在する単体テストに最適ですが、その抽象テスト クラスを使用して、そのプラグインを使用する他の grails プロジェクトのテストでモック データをセットアップしたいと考えています。テストの実行時に、プラグインのテスト クラスがクラスパスに含まれているようには見えません。Grailsにそれらを含めるように指示する方法はありますか?:

//this abstract test class is in the core service plugin's test directory.  My IDE has no problem with this import
import com.myproject.coreservices.service.AbstractGiftInstanceRelatedUnitTest 

//this test class is in the project that uses the plugin
class ClaimGiftControllerTests extends AbstractGiftInstanceRelatedUnitTest { 

.. my tests
}

そして出力(重要でない部分は削除されています):

| Error Compilation error compiling [unit] tests: startup failed:
...../test/unit/com/myproject/ClaimGiftControllerTests.groovy: 3: unable to resolve class com.myproject.coreservices.service.AbstractGiftInstanceRelatedUnitTest
 @ line 3, column 1.
   import com.myproject.coreservices.service.AbstractGiftInstanceRelatedUnitTest
   ^
4

1 に答える 1

2

AbstractGiftInstanceRelatedUnitTest は、テスト フォルダーではなく、プラグインの src/groovy フォルダーに配置できます。そうすれば、プラグインや他のプロジェクトのテスト ケースに含めることができます。

于 2012-10-04T10:34:34.810 に答える