cucumber-jvm javadocs 指出,glue 元素的目的是指定步骤定义和钩子的位置。但是,这似乎对我不起作用。假设我在目录 a 中有我的功能,在目录 b 中有我的步骤定义。然后
@Cucumber.Options(
features= "directory_a",
glue="directory_b"
)
将从directory_a加载我的功能文件,但不会从directly_b加载我的步骤定义。但是,如果我使用
@Cucumber.Options(
features= {"directory_a", "directory_b"}
)
然后加载目录_a中的特征,并提取目录_ b中的步骤定义。这正是我想要的,然而,我不明白为什么前者不起作用?我猜这与期望URI的格式不同有关(也许我需要在前面加一个classpath://或类似的东西),但我在文档中找不到任何有关这方面的信息。
嗨,据我所知,这一切都取决于您的项目结构。例如,如果在根级别和 StepDefinition 中添加“Directory_a”(包含功能文件的目录),则 src 中的 Hooks
Dir_a
|
src
|---main
|---test
|------java
|------Dir_b
|------Dir_c
当你在“Dir_c”中时说“Dir_b”它会识别“Dir_b”或同一级别中的任何目录,没有任何额外的路径,所以,它将是胶水= {“Dir_b”},但是当你查看包含功能文件的目录时,你必须从根级别给出路径在这种情况下,它的功能= {“Dir_a”}或给出实际路径,例如:- “E://Project_Name//Dir_a”也应该有效
如果功能目录不在根级别,请确保提供类似“src/path to feature directory”之类的路径
它将很好地工作:)
我也遇到了这个问题...到目前为止,它似乎是:
“功能”正在查找文件系统路径:
features = "src/foo/bar"
而“胶水”正在寻找包名称:
glue = "foo.bar"
不知道为什么他们不同,但这似乎是为我工作。
我已经成功地使用了这样的东西:
@RunWith(Cucumber.class)
@Cucumber.Options(
//this code will only look into "features/" folder for features
features={"classpath:features/"},
glue = { "com.mycompany.cucumber.stepdefinitions", "com.mycompany.cucumber.hooks" },
format = { "com.mycompany.cucumber.formatter.RuntimeInfoCatcher", "json:target/cucumber.json" },
tags = { "@working" }
)
public class CucumberStarterIT {
}
查看文档http://cukes.info/api/cucumber/jvm/javadoc/cucumber/api/junit/Cucumber.Options.html它指定了String[]
类型的选项,因此如果您不给它一个单值列表,它可能不会“很好”工作。试试胶水={"directory_b"}
,看看会发生什么。
我使用-dcucumber.options运行test by mvn命令行,以重写prject的选项: 但显示错误:
我使用< code>Cucumber和< code>Guice作为DI。我遇到了以下问题:我有一个步骤,即 我让这个类作为测试运行它 有一个 由我的使用,我定义了cucumber.properties,我定义了还有一个包含方案的功能文件。现在一切都在工作。 不,我想使用其他MyService实现运行MyStep步骤(当然我不会重复MyStep的代码)我定义了一个具有新场景和新测试类的新功能文件 现
我正在为测试自动化创建一个黄瓜框架。我面临的问题是无法解决测试运行程序类中CucumberOptions的导入 最初,我尝试使用导入cucumber.api的建议,但现在已不推荐使用。然后我去了官方的黄瓜网站,寻找进口,但他们并没有解决问题,以及。 不推荐使用的导入: 我想知道有没有新的依赖需要添加。我记得在cucumber.api被弃用之前,我曾在cucumber上做过工作,它曾经工作得很好。
这是错误的完整轨迹: 这是我的cucumberRunner文件
24.9 选择技术时的注意事项 这里提到的每种技术都有它的缺点。你在选择一种技术时,应该仔细考虑你的需要和所暴露的服务及你在远程访问时传送的对象。 当使用RMI时,通过HTTP协议访问对象是不可能的,除非你正在HTTP通道传输RMI流量。RMI是一种重量级协议,因为它支持整个对象的序列化,当要求网络上传输复杂数据结构时这是非常重要的。然而,RMI-JRMP与Java客户端相关:它是一种Java-t
问题内容: 我试图在项目中使用Java 8,为此我添加了jack编译器。 启用jack后,我开始对使用注释处理的库产生问题,并在网上查看,我读到我需要android studio 2.2和com.android.tools.build:gradle:2.2.0-alpha6来编译从注释生成代码的库。 我下载了Android Studio 2.2预览版6,然后将项目转换为它。之后,我发现不再支持ap