2012-01-24 29 views
5

का उपयोग करके एक सरल Grails कार्यात्मक परीक्षण नहीं चला सकता मैं मदद के लिए पूछ रहा हूँ क्योंकि मुझे नहीं पता कि इस त्रुटि के साथ क्या करना है ... तो सबसे पहले मुझे मुझे जो स्टैकट्रैक मिलता है उसे दिखाएं जब मेरा सचमुच सरल परीक्षण चल रहा है, तो अजीब बात यह है कि मेरा परीक्षण निष्पादित नहीं लगता है ...? मैं Grails 2,0मैं गेब और स्पॉक

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 

और यहाँ ग्रूवी फ़ाइलों का उपयोग कर रहा हूँ:

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 = { 
    } 
} 

धन्यवाद

उत्तर

7

आपकी परीक्षा कक्षाएं SpecTest पर समाप्त होनी चाहिए। अन्यथा Grails उन्हें स्पॉक विनिर्देशों के रूप में पहचान नहीं होगा।

+1

हाँ! धन्यवाद !! समाधान इतना स्पष्ट था कि मैं इसे नहीं देख सका :-) –

+0

क्या इसका मतलब यह है कि मेरे पिछले सभी यूनिट परीक्षणों का नाम बदलकर एसएसपीसी किया जाना चाहिए? – raffian

+0

सुनिश्चित नहीं है कि "मेरे पिछले यूनिट परीक्षण" से आपका क्या मतलब है। * स्पॉक टेस्ट क्लासेस * को 'स्पेक' में समाप्त करना होगा। ध्यान दें कि यह प्रश्न Grails के लिए विशिष्ट है। –

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^