gradle - 在 build.gradle 中更改胶水
问题描述
如何更改glue
Gradle+Cucumber 项目的路径?
这是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?
解决方案
假设您有一个名为 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']
编辑 我从胶水值中删除了 cucumberjvm302testbed 以在将其他文件夹添加到步骤时增加灵活性。
推荐阅读
- php - 将 Dockerfile 从 php:7.2-fpm 更新为 php:7.3-fpm 时出错
- spring-boot - 如何在 Spring Boot 应用程序中处理传入的 webhook
- asp-classic - 如何访问 global.asa 文件中的会话变量
- javascript - 当我点击 select2 输入时键盘关闭
- javascript - Firebase goOffline() 过早触发
- c# - 在 MVC 页面上显示(剑道)对话框,带有多个提交按钮
- css - 某些 CSS 样式未在 Firefox、Safari 或 Chrome 中应用
- bash - 删除bash目录中文件名开头的数字
- pandas - 如何修复“工作簿析构函数中捕获的异常。工作簿可能需要显式关闭()。”
- python - 将 mypy 的通用 self 与 python2 类型注释一起使用