2012-01-24 11 views
5

'u kullanamıyorum Yardım isterim çünkü bu hata ile ne yapacağımı bilmiyorum ... Öncelikle elde ettiğim stacktrace'i göstereyim Gerçekten basit testimi çalıştırırken, garip olan şey benim testimin idam edilmemesi ...? Burada harika dosyalarıBasit bir Grails işlevsel testini kullanarak, Geb ve spock

Configuring Spring Security Core ... 
... finished configuring Spring Security Core 
| Server running. Browse to http://localhost:8080/ 
| Running 3 functional tests... 1 of 0 
| Failure: initializationError(SecondaryTest) 
| java.lang.Exception: No runnable methods 
    at org.junit.runners.BlockJUnit4ClassRunner.validateInstanceMethods(BlockJUnit4ClassRunner.java:166) 
    at org.junit.runners.BlockJUnit4ClassRunner.collectInitializationErrors(BlockJUnit4ClassRunner.java:102) 
    at org.junit.runners.ParentRunner.validate(ParentRunner.java:344) 
    at org.junit.runners.ParentRunner.<init>(ParentRunner.java:74) 
    at org.junit.runners.BlockJUnit4ClassRunner.<init>(BlockJUnit4ClassRunner.java:55) 
| Running 3 functional tests... 2 of 0 
| Failure: initializationError(SecondaryTest) 
| java.lang.Exception: The @Rule '_gebReportingSpecTestName' must be public. 

    at org.junit.internal.runners.rules.RuleFieldValidator.addError(RuleFieldValidator.java:90) 
    at org.junit.internal.runners.rules.RuleFieldValidator.validatePublic(RuleFieldValidator.java:67) 
    at org.junit.internal.runners.rules.RuleFieldValidator.validateField(RuleFieldValidator.java:55) 
    at org.junit.internal.runners.rules.RuleFieldValidator.validate(RuleFieldValidator.java:50) 
    at org.junit.runners.BlockJUnit4ClassRunner.validateFields(BlockJUnit4ClassRunner.java:170) 
    at org.junit.runners.BlockJUnit4ClassRunner.collectInitializationErrors(BlockJUnit4ClassRunner.java:103) 
    at org.junit.runners.ParentRunner.validate(ParentRunner.java:344) 
    at org.junit.runners.ParentRunner.<init>(ParentRunner.java:74) 
    at org.junit.runners.BlockJUnit4ClassRunner.<init>(BlockJUnit4ClassRunner.java:55) 
| Running 3 functional tests... 3 of 0 
| Failure: initializationError(SecondaryTest) 
| java.lang.Exception: The @Rule '_gebReportingSpecTestName' must implement MethodRule or TestRule. 
    at org.junit.internal.runners.rules.RuleFieldValidator.addError(RuleFieldValidator.java:90) 
    at org.junit.internal.runners.rules.RuleFieldValidator.validateTestRuleOrMethodRule(RuleFieldValidator.java:73) 
    at org.junit.internal.runners.rules.RuleFieldValidator.validateField(RuleFieldValidator.java:56) 
    at org.junit.internal.runners.rules.RuleFieldValidator.validate(RuleFieldValidator.java:50) 
    at org.junit.runners.BlockJUnit4ClassRunner.validateFields(BlockJUnit4ClassRunner.java:170) 
    at org.junit.runners.BlockJUnit4ClassRunner.collectInitializationErrors(BlockJUnit4ClassRunner.java:103) 
    at org.junit.runners.ParentRunner.validate(ParentRunner.java:344) 
    at org.junit.runners.ParentRunner.<init>(ParentRunner.java:74) 
    at org.junit.runners.BlockJUnit4ClassRunner.<init>(BlockJUnit4ClassRunner.java:55) 
| Completed 3 functional tests, 3 failed in 40ms 
| Server stopped 
| Tests FAILED - view reports in target/test-reports 

Ve Grails 2.0 kullanıyorum:

SecondaryTest.groovy:

import pages.SignInPage 
import geb.spock.GebReportingSpec 

class SecondaryTest extends GebReportingSpec { 

    String getBaseUrl() { "http://localhost:8080/" } 

    File getReportDir() { new File("target/reports/geb") } 

    def "I am at siginin page"() { 
     when: 
     to SignInPage 

     then: 
     true 
    } 
} 

SignInPage.groovy:

package pages 

import geb.Page 

class SignInPage extends Page { 

    static url = "login/auth" 

    static at = { title == "Sign in" } 

    static content = { 
    } 
} 

sayesinde

cevap

7

Test sınıflarınız, Test değil Spec ile bitmelidir. Aksi halde, Grails bunları Spock özellikleri olarak tanımaz.

+1

evet! Teşekkürler !! çözüm çok açık olduğunu göremedim :-) –

+0

Bu, önceki tüm birim testlerimin bir şeylere yeniden adlandırılması gerektiği anlamına mı geliyor? – raffian

+0

"Önceki birim testlerim" ile ne kastettiğinizden emin değil misiniz? * Spock test sınıfları * 'Spec' ile bitmelidir. Bu sorunun Grails'e özgü olduğunu unutmayın. –