簡體   English   中英

Grails單元測試用例顯示已完成0個Spock測試,0個失敗

[英]Grails unit test case showing Completed 0 spock test, 0 failed

我是Grails的新手。 我正在使用2.2.2版,即使測試用例通過,它也沒有運行。 運行測試用例后,我得到以下消息。

解決[測試]依賴性...解決[運行時]依賴性... | 編譯1個源文件。
| 錯誤log4j:ERROR配置log4j時缺少屬性:grails | 錯誤log4j:ERROR配置log4j時缺少屬性:grails | 錯誤log4j:錯誤警告:配置log4j日志記錄時發生異常: 完成了0次Spock測試,在1409ms中失敗了0次
| 測試通過-在D:\\ workspace_idea \\ optapp \\ target \\ test-reports中查看報告

@TestFor(KpiLog)
@TestMixin(DomainClassUnitTestMixin)
@Mock(KpiLog)
class KpiLogSpec extends Specification {

    void "savelog"() {
        prinln "*********"
        when:
        def kpiLog = new KpiLog(scenarioId: 1, kpiId: 2, deltaKpi: 5)
        kpiLog.save(flush: true)

        then:
        KpiLog.list()!= null
    }

    void testSaveFacebookUser(){
        //given
        def kpiLog = new KpiLog(scenarioId: 1, kpiId: 2, deltaKpi: 5)
        //adminRole.addToPermissions("*:*")
        kpiLog.save()
    }
}

有人可以告訴我我做錯了什么嗎?

我正在以grails test-app -unit KpiLogSpec身份運行測試用例

這是Config.groovy文件中的log4j部分

    log4j = {
// Example of changing the log pattern for the default console
// appender:
//
//appenders {
//    console name:'stdout', layout:pattern(conversionPattern: '%c{2} %m%n')
//}
debug 'grails.app'
error  'org.codehaus.groovy.grails.web.servlet',  //  controllers
        'org.codehaus.groovy.grails.web.pages', //  GSP
        'org.codehaus.groovy.grails.web.sitemesh', //  layouts
        'org.codehaus.groovy.grails.web.mapping.filter', // URL mapping
        'org.codehaus.groovy.grails.web.mapping', // URL mapping
        'org.codehaus.groovy.grails.commons', // core / classloading
        'org.codehaus.groovy.grails.plugins', // plugins
        'org.codehaus.groovy.grails.orm.hibernate', // hibernate integration
        'org.springframework',
        'org.hibernate',
        'net.sf.ehcache.hibernate'

appenders {
    console name:'S', layout:pattern(conversionPattern: '%d %-5p %c - %m%n')
    //rollingFile name: 'R', file:'/usr/local/jd/logs/optimizer.log',maxFileSize: '5000000KB'
    rollingFile name: 'R', file:grails.config.logPath, maxFileSize: '5000000KB'
    environments {
        production {
            appender new AWSSNSAppender(
                name:'SNS' ,
                topicName:config.optimizer.snsAppender.topicName,
                topicSubject:config.optimizer.snsAppender.topicSubject,
                awsAccessKey:config.optimizer.aws.accessKey,
                awsSecretKey:config.optimizer.aws.secretKey,
                threshold:Level.toLevel(optimizer.snsAppender.threshold, Level.ERROR)
            )
        }
    }
}
info R: ['NotifierService', 'aggDataStackLog','constraintGroupLog','pageFilterLog','alertDebugLog','dacCacLog','tpFlagExportImportLog','timelog','calculationProgress','dictionaryLog','loginServiceLog', 'calculateScenarioLog','connectionLog','dataLabelServiceLog','cross-section-service','qe-basic-executor-service','qe-plan-enumerator-impl-service','qe-basic-planenum-ssservice','ct-dimension-hierarchy-service','cbRuleLog'],additivity:true
error SNS: ['aggDataStackLog','constraintGroupLog','pageFilterLog','alertDebugLog','dacCacLog','tpFlagExportImportLog','timelog','calculationProgress','dictionaryLog','loginServiceLog', 'calculateScenarioLog','connectionLog','dataLabelServiceLog','cross-section-service','qe-basic-executor-service','qe-plan-enumerator-impl-service','qe-basic-planenum-ssservice','ct-dimension-hierarchy-service','cbRuleLog'],additivity:true
//info SNS: ['aggDataStackLog','calculateScenarioLog']
/*root {
    error 'R'
    additivity = true
}   */

}

這是我運行的測試代碼。

  @TestMixin(GrailsUnitTestMixin)
class FooSpec extends Specification {

def setup() {
}

def cleanup() {
}

void "test something"() {
    println "****************testing in real "
    assertTrue(1==1)
}
}

運行測試用例這樣

grails test-app unit: KpiLog

重要的是,你使用unit:代替-unitKpiLog代替KpiLogSpec

然后,不要定義變量log

def log = new KpiLog(scenarioId: 1, kpiId: 2, deltaKpi: 5)

它被保留在Grails的類(控制器,服務,...)記錄。 將變量從log重命名為kpiLog

def kpiLog = new KpiLog(scenarioId: 1, kpiId: 2, deltaKpi: 5)

一個簡單的日志配置可

log4j = {
    appenders {
        console name: 'stdout', layout: pattern(conversionPattern: '%d [%t] %-5p %c - %m%n')
    }

    error  'org.codehaus.groovy.grails.web.servlet',        // controllers
           'org.codehaus.groovy.grails.web.pages',          // GSP
           'org.codehaus.groovy.grails.web.sitemesh',       // layouts
           'org.codehaus.groovy.grails.web.mapping.filter', // URL mapping
           'org.codehaus.groovy.grails.web.mapping',        // URL mapping
           'org.codehaus.groovy.grails.commons',            // core / classloading
           'org.codehaus.groovy.grails.plugins',            // plugins
           'org.codehaus.groovy.grails.orm.hibernate',      // hibernate integration
           'org.springframework',
           'org.hibernate',
           'net.sf.ehcache.hibernate'
}

最后,它正在工作。 這是因為lib文件夾中的jar msutil。 我從我的一個朋友那里得到了一些不兼容的信息。 我換了他寄來的罐子,事情開始起作用。

非常感謝saw303對我的問題保持耐心。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM