如何更改Gradle + Cucumber项目的glue
路径?
这是build.gradle
文件的相关部分:
task cucumber() {
dependsOn assemble, compileTestJava
doLast{
javaexec {
main = "cucumber.api.cli.Main"
classpath = configurations.cucumberRuntime + sourceSets.main.output + sourceSets.test.output
args = ['--plugin', 'pretty', '--glue', 'gradle.cucumber', 'src/main/java/features']
}
}
}
当我从命令行运行>gradle cucumber
时,没有得到通知的情况的定义,因为胶水文件不在/main
文件夹中,而是在/main/java/stepmethods
文件夹中。
我该如何告诉Gradle?
答案 0 :(得分:1)
让我们说您有一个名为acmetesting的项目。您的项目结构可能如下:
acmetesting
|
+---src/main/java
|
+---com.acme.testing
|
+---steps
|
+---cucumberjvm302testbed
|
+---Cucumber302TestBedSteps.java
文件Cucumber302TestBedSteps.java是您的步骤定义文件,在上述配置中,它将像这样开始:
package com.acme.testing.steps.cucumberjvm302testbed;
import cucumber.api.java.en.Given;
import cucumber.api.java.en.Then;
import cucumber.api.java.en.When;
import io.cucumber.datatable.DataTable;
import io.cucumber.datatable.DataTable.TableConverter;
import io.cucumber.datatable.DataTableType;
import io.cucumber.datatable.DataTableTypeRegistry;
import io.cucumber.datatable.DataTableTypeRegistryTableConverter;
import io.cucumber.datatable.TableEntryTransformer;
import static org.junit.Assert.assertEquals;
import java.util.HashMap;
import java.util.List;
import java.util.Locale;
import java.util.Map;
ooo
因此您的args行如下所示:
args = ['--plugin', 'pretty', '--glue', 'com.acme.testing.steps', 'src/main/java/features']
编辑 当将其他文件夹添加到步骤中时,我从胶合值中删除了黄瓜jvm302testbed,以提高灵活性。