簡體   English   中英

如何從Gradle文件中運行黃瓜方案?

[英]How to Run Cucumber Scenarios from Gradle file.?

我有一個Cucumber + Java項目,如果我使用JUnit Runner執行以Feature文件編寫的Cucumber方案,那么一切工作都很好,但是當我嘗試使用build.gradle文件運行它們時會出現問題。

@Scenario1
Given I have URL 
When When I login 
Then I can see Homescreen

@Scenario2
Given I am logged in
When I make payment
Then I can see payment receipt

我創建了一個gradle任務-

task Cucumber()<<{
    println 'Running Test'
    javaexec {
            main = "cucumber.api.cli.Main"
        classpath = configurations.cucumberRuntime + sourceSets.main.output + sourceSets.test.output
        args =['--format','pretty','--format',
    'html:'+System.getProperty("port")+System.getProperty("tag"),
    '--format',
    'json:'+System.getProperty("port")+'/cucumber.json',
    'src/test/resources'
    ,'--glue','classpath:stepDefinition',
    '--tags', System.getProperty("tag")]

    }
}

Gradle任務會讀取Scenario2步驟,但同時找不到Scenario1步驟。

可能是什么問題?

如果您從名為RunCukesTest的類運行黃瓜測試,則可能很簡單

gradle -Dtest.single = RunCukesTest <模塊名稱>:test

我的方法如下:

1)為您的集成測試創建一個單獨的文件夾,這是首選,因為您的集成測試可以運行很長時間,並且您不想每次構建時都運行它們。

2)將以下代碼添加到您的build.gradle中:

configurations {
    intTestCompile.extendsFrom testCompile
    intTestRuntime.extendsFrom testRuntime

}

要添加源集:

sourceSets {
    main {
        java {
            srcDirs = ["$projectDir/src/main/java"]
        }
    }
    test {
        java {
            srcDirs = ["$projectDir/src/test/java"]
        }
    }
    intTest {
        java {
            compileClasspath += main.output + test.output
            runtimeClasspath += main.output + test.output
            srcDir file('src/intTest/java')
        }
        resources.srcDir file('src/intTest/resources')
    }
}

運行集成測試的任務:

task intTest(type: Test) {
    description = "Run integration tests (located in src/intTest/...)."
    setTestClassesDirs(project.sourceSets.intTest.output.classesDir)
    classpath = project.sourceSets.intTest.runtimeClasspath
    outputs.upToDateWhen { false }

    testLogging {
        events "PASSED", "STARTED", "FAILED", "SKIPPED"
    }
}

現在只需執行以下命令:

gradle intTest

暫無
暫無

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

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