使用Gradle任务将Cucumber与Jenkins集成



我是一名实习生,目前在一家大公司工作
在我的测试自动化项目(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>']
}
}
}

现在我需要把这个和詹金斯结合起来。我在这里阅读了文档:Continuos Build-Cucumber。它的做法是:

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

我猜它运行JUnit文件?它没有显示使用Gradle任务的方法
既然我有两个JUnit,它会同时运行这两个JU尼特吗?有没有办法使用Gradle任务

如果这是一个愚蠢的问题,我很抱歉。我对这一切还是个新手。我不是在大学里学的。

您可以使用以下方法在管道中运行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

最新更新