2017-02-27 27 views
2

我的测试框架出了什么问题,我无法运行测试?由于缺少依赖关系,无法加载类get.spock.GebSpec org/spockframework/mock/MockController

的build.gradle

version '1.0-SNAPSHOT' 
//task wrapper(type: Wrapper) { 
// gebVersion = '0.13.1' 
// seleniumVersion = '2.52.0' 
// 
// distributionUrl = "https://services.gradle.org/distributions/gradle-$gradleVersion-all.zip" 
//} 


apply plugin: 'groovy' 

    repositories { 
     mavenCentral() 
    } 

    sourceCompatibility = 1.5 

    dependencies { 
     testCompile group: 'junit', name: 'junit', version: '4.11' 
     // geb 
     compile 'org.codehaus.geb:geb-core:0.7.2' 
     compile 'org.codehaus.geb:geb-spock:0.7.2' 
     compile "org.seleniumhq.selenium:selenium-firefox-driver:2.52.0" 
     compile "org.seleniumhq.selenium:selenium-chrome-driver:2.52.0" 
     compile "org.seleniumhq.selenium:selenium-safari-driver:2.52.0" 
     compile "org.seleniumhq.selenium:selenium-support:2.52.0" 
     // spock 
     compile "org.codehaus.groovy:groovy-all:2.4.1" 
     testCompile "org.spockframework:spock-core:1.0-groovy-2.4" 
    } 

GebConfig.groovy

//import geb.driver.SauceLabsDriverFactory 
    import org.openqa.selenium.chrome.ChromeDriver 
    import org.openqa.selenium.firefox.FirefoxDriver 
    import org.openqa.selenium.safari.SafariDriver 

    //baseUrl = 'http://madison.craigslist.org' 

    // default driver... 
    System.setProperty('webdriver.chrome.driver', "../resources/chromedriver") 
    driver = {new ChromeDriver()} 

    environments { 

       'chrome' { 
        def chromeDriver = new File('src/test/resources/chromedriver') // add .exe for Windows... 
        System.setProperty('webdriver.chrome.driver', chromeDriver.absolutePath) 
        driver = { new ChromeDriver() } 
       } 

    //   'ff' { 
    //    driver = { new FirefoxDriver() } 
    //    driver.manage().window().maximize() 
    //   } 

       'safari' { 
        driver = { new SafariDriver() } 
       } 
    } 

    waiting { 
     timeout = 6 
     retryInterval = 0.5 
     slow { timeout = 12 } 
     reallySlow { timeout = 24 } 
    } 

    reportsDir = "geb-reports" 

页面类

package pages 

    import geb.Page 
    import geb.Browser 

    class LoginPage extends Page{ 

     static url = "https://qmdev.quickblox.com" 
    // static at = {heading.isDisplayed()} 
     static at = {title == "Q-municate"} 

     static content = { 
      heading {$("div#l-welcome_block l-welcome_text_description")} 
      logInByEmailOrSocial {$("button", text:"login by email or social")} 
      logInPageTitle {$("div.l-welcome_block l-welcome_text_login")} 
     } 
    } 

测试类

import geb.spock.GebReportingSpec 
import pages.LoginPage 
import spock.lang.* 
import geb.spock.GebSpec 


@Stepwise 
class LoginPageTest extends GebReportingSpec{ 

    def "log in Q-municate"(){ 
     given: "Open Log In page" 
     to LoginPage 

     when: "chose log in by email" 
     LoginPage.logInByEmailOrSocial.click() 

     then: "Ensure that we are on LogIn page" 
     LoginPage.logInPageTitle.text() == "Log In" 
    } 
} 

关于我的框架: 我用网络斯波克 - 常规 - gradle这个包的Web UI自动化和我是一个新用户与摇篮。 请告诉我,我的build.gradle和GebConfig.groovy有什么问题。

+0

为什么geb是编译依赖项,但Spock测试编译? –

+0

您输入的字体可能是?它是'geb.spock.GebSpec',而不是'get.spock'。或者它只是标题中的错字? – kriegaex

回答

0

您的Geb-Spock版本0.7.2相当陈旧,可能是您的问题的原因。我建议改变这些2依赖性高达1.1.1版本:

compile 'org.codehaus.geb:geb-core:0.7.2' //change to 1.1.1 
compile 'org.codehaus.geb:geb-spock:0.7.2' //change to 1.1.1 

进一步我检查斯波克API版本1.1“组织/ spockframework /模拟/ MockController”,它似乎并不存在。

enter image description here

http://spockframework.org/spock/javadoc/1.1-SNAPSHOT/index.html) 正如你在图中看到,只有2类,是spock.mock包的一部分,而MockController是不是其中之一。尝试更新您的geb版本,并让我们知道是否有帮助