Trong ứng dụng Grails của tôi, tôi muốn ngăn plugin Tìm kiếm tải khi chạy thử nghiệm đơn vị của tôi. Tôi cố gắng làm điều này bằng cách sử dụng đoạn mã sau trong lớp BootstrapVô hiệu hóa plugin 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
}
}
Tuy nhiên điều này không làm việc vì grailsApplication.getClassForName("SearchableGrailsPlugin")
trả về null, có lẽ vì lớp này không phải là trên classpath khi mã này chạy. Có cách nào khác để tôi có thể tắt plugin này không?