无法使用gradle在intellij中以调试模式运行黄瓜功能

问题描述 投票:9回答:1

当我在调试中运行配置时,所有测试都会在不停止到断点的情况下执行。任何人都知道如何使用gradle运行/调试功能?

我还尝试了应用程序配置,但未设置系统属性“geb.browser和geb.environment”,这会导致空指针异常。

组态:

enter image description here

的build.gradle:

import org.apache.tools.ant.taskdefs.condition.Os
buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath "com.github.samueltbrown:gradle-cucumber-plugin:0.9"
        classpath "info.cukes:cucumber-core:1.2.4"
    }
}

ext {
    ext {
        groovyVersion = '2.4.4'
        gebVersion = '0.12.2'
        seleniumVersion = '2.48.2'
        chromeDriverVersion = '2.20'
        cucumberJvmVersion = '1.2.2'
     }
}

apply plugin: 'groovy'
apply plugin: 'java'
apply from: "gradle/osSpecificDownloads.gradle"
apply plugin: "com.github.samueltbrown.cucumber"
apply from: "gradle/idea/idea.gradle"

repositories {
    mavenCentral()
}
dependencies {
    testCompile "org.gebish:geb-core:$gebVersion"
    testCompile "org.codehaus.groovy:groovy-all:$groovyVersion"

    // HttpBuilder
    testCompile "org.codehaus.groovy.modules.http-builder:http-builder:0.7.1"

    // Selenium support
    testCompile "org.seleniumhq.selenium:selenium-support:$seleniumVersion"
    testCompile "org.seleniumhq.selenium:selenium-api:$seleniumVersion"

    testCompile "info.cukes:cucumber-core:$cucumberJvmVersion"
    testCompile "info.cukes:cucumber-groovy:$cucumberJvmVersion"

    testCompile "io.jdev.geb:geb-cucumber:0.3"

    cucumberRuntime "org.seleniumhq.selenium:selenium-firefox-driver:$seleniumVersion"
    cucumberRuntime "org.seleniumhq.selenium:selenium-chrome-driver:$seleniumVersion"

}

cucumber {
    formats = [
            'pretty', // prints nice format out to the console
            'html:build/reports/cucumber', // html
            'junit:build/cucumber.xml' // junit format for integration with CI tool etc
    ]

    glueDirs = ['src/test/groovy/com/stepsDefs']
    featureDirs = ['src/cucumber/resources']
}

tasks.cucumber {
    dependsOn unzipChromeDriver

    final def environment = System.getProperty('geb.environmemt')
    // set environments
    switch (environment) {
        case 'alpha':
            System.setProperty("geb.build.baseUrl", "http://www.google.com")
            System.setProperty("apiKey", "")
            break
        case 'ci':
            System.setProperty("geb.build.baseUrl", "http://www.google.com")
            System.setProperty("apiKey", "")
            break
        case 'silo122':
            System.setProperty("geb.build.baseUrl", "http://www.google.com")
            System.setProperty("apiKey", "")
            break
        default:
            println("Environment argument is not supported - Available options:\n- alpha\n- ci\n- local\n- silo122\n- stage")
            System.exit(0)
            break
    }

    def chromeDriverFilename = Os.isFamily(Os.FAMILY_WINDOWS) ? "chromedriver.exe" : "chromedriver"
    jvmOptions.systemProperties([
            "webdriver.chrome.driver": new File(unzipChromeDriver.outputs.files.singleFile, chromeDriverFilename).absolutePath,
            "geb.cucumber.step.packages": "pages",
            "geb.env": System.getProperty("geb.browser"),
            "geb.build.baseUrl":System.getProperty("geb.build.baseUrl"),
            "envName": System.getProperty("geb.environmemt")
    ])

}

apply from: "gradle/ci.gradle"
gradle cucumber-jvm intellij-15
1个回答
0
投票

你的断点在哪里设定?如果它们在您的功能文件中,那么很遗憾您无法调试那些因为它们在运行时被黄瓜解析。断点必须位于定义文件或任何其他源文件中。如果在功能文件中有重复的步骤,您可以尝试在要调试命中的步骤之前在IDE上执行暂停,然后在要调试的代码上设置新的断点。

© www.soinside.com 2019 - 2024. All rights reserved.