我是目前在一家大公司工作的实习生,在我的测试自动化项目(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任务?如果这是一个愚蠢的问题,对不起。我还是所有这一切的新手。我不在我的大学学习。
最佳答案
您可以使用以下类似方法在管道中运行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
。关于java - 使用Gradle任务将Cucumber与Jenkins集成,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53492280/