使用Gradle任务将Cucumber与Jenkins集成

时间:2018-11-27 03:24:53

标签: java jenkins gradle cucumber

我是一名实习生,目前在一家大公司工作。
在我的测试自动化项目(github)中,在同一项目中有两个不同团队进行的两个测试,因此有两个Cucumber JUnit文件。我不知道如何分别运行这两者,因此我进行搜索,而目前的做法是将它们拆分为两个Gradle任务。

task ivtTest() {
    dependsOn assemble, compileTestJava
    doLast {
        javaexec {
            main = "cucumber.api.cli.Main"
            classpath = configurations.cucumberRuntime + sourceSets.main.output + sourceSets.test.output
            args = ['--plugin', 'html:cucumber.html', '--plugin', 'pretty','--plugin', 'json:cucumber.json', '--glue', '<glue location>', '<feature file location>']
        }
    }
}
task svtTest() {
    dependsOn assemble, compileTestJava
    doLast {
        javaexec {
            main = "cucumber.api.cli.Main"
            classpath = configurations.cucumberRuntime + sourceSets.main.output + sourceSets.test.output
            args = ['--plugin', 'html:cucumber.html', '--plugin', 'pretty','--plugin', 'json:cucumber.json', '--glue', '<glue location>', '<feature file location>']
        }
    }
}

现在我需要将此与Jenkins集成。我在这里阅读了文档:Continuos Build - Cucumber。这样做的方式是:

node {
    stage('Generate HTML report') {
        cucumber buildStatus: 'UNSTABLE',
                fileIncludePattern: '**/*.json',
                trendsLimit: 10,
                classifications: [
                    [
                        'key': 'Browser',
                        'value': 'Firefox'
                    ]
                ]
    }
}

我猜它运行JUnit文件吗?它没有显示使用Gradle任务的方法。
由于我有两个JUnit,它将同时运行两个JUnit吗?有没有办法使用Gradle任务?

如果这是一个愚蠢的问题,我感到抱歉。我还是所有这一切的新手。我不在我的大学学习。

1 个答案:

答案 0 :(得分:0)

您可以使用以下类似方法在管道中运行Gradle任务:

stages {
    stage('Gradle tasks') {
        steps {
            sh 'bash ./gradlew ivtTest'
            sh 'bash ./gradlew svtTest'
        }
    }
    stage('Generate HTML report') {
        cucumber buildStatus: 'UNSTABLE',
                fileIncludePattern: '**/*.json',
                trendsLimit: 10,
                classifications: [
                    [
                        'key': 'Browser',
                        'value': 'Firefox'
                    ]
                ]
    }
}

这是如果Jenkins在Linux服务器上运行,如果它在Windows服务器上运行,则将sh替换为bat