2009-07-24 7 views
6

、私は私のユニットテストを実行する際の負荷から検索可能プラグインを防ぎたいです。私はgrailsApplication.getClassForName("SearchableGrailsPlugin")リターンがヌルしかし、これは、このコードが実行されるとき、このクラスがクラスパス上にないと思われるので、動作しないブートストラップクラスに次のコード無効にGrailsのプラグイン

def grailsApplication 

def init = {servletContext -> 
    def currentEnv = grails.util.Environment.current.name 

    if (currentEnv == 'test') { 

     def doNothing = {println "Searchable is disabled"} 

     // This returns null! 
     def searchablePluginClass = grailsApplication.getClassForName("SearchableGrailsPlugin") 

     searchablePluginClass.metaClass.doWithDynamicMethods = doNothing 
     searchablePluginClass.metaClass.doWithSpring = doNothing 
     searchablePluginClass.metaClass.doWithApplicationContext = doNothing 
    } 
} 

を使用してこれをやってみました。このプラグインを無効にできる方法はありますか?

答えて

4

私は、プラグインを無効にする方法を確認していない、あなたは以下とのユニットテストはより我慢させることができるかもしれませんGrailsのではnative compass XML

と方法があるかもしれません... この追加のプラグインをインストールします。 をGrailsのインストール・検索可能-config設定を

は、これは、あなたのGrailsアプリ/ confに/ Searchable.groovyファイルを提供します。 environments.test.searchable closureを編集して、少なくともbulkIndexOnStartupとmirrorChangesを無効にすることができます。

environments { 
test { 
    searchable { 
     // disable bulk index on startup 
     bulkIndexOnStartup = false 
     mirrorChanges = false 

     // use faster in-memory index 
     compassConnection = "ram://test-index" 
    } 
} 
} 
8

解決策が見つかりました。 Config.groovyに以下を追加します。テストを実行しても使用してテストビルド、用のプラグインを無効にするに

environments { 
    test { 
     plugin { 
      excludes = "searchable" 
     } 
    } 
} 
0

- あなたがそこにあなたのプラグインが含まれている場合、次はBuildConfig.groovyで可能です。

environments { 
      development { 
       compile ":searchable:0.6.6" 
      } 
      test { 
      } 
      production { 
       compile ":searchable:0.6.6" 
      } 
     } 
} 

これはテストするとき、あなたがUATリリースビルドするために、この環境を使用している場合、しかし、これはまた、テストリリースに影響するプラグインを含むからビルド環境を停止します。

関連する問題