cri*_*nge 19 java cucumber cucumber-jvm cucumber-junit
我尝试使用Java和Maven构建我的第一个可执行规范.我用这个结构创建了一个简单的项目:
specification
|-src
|-test
|-java
|-mypackage
|-MyFeatureTest.java
|-resources
|-MyFeature.feature
Run Code Online (Sandbox Code Playgroud)
在junit测试中MyFeatureTest.java我有这个:
import org.junit.runner.RunWith;
import cucumber.junit.Cucumber;
@RunWith(Cucumber.class)
public class HomepageTest {
}
Run Code Online (Sandbox Code Playgroud)
现在https://github.com/cucumber/cucumber-jvm/wiki/IDE-support说我应该添加以下行:
@Cucumber.Options(paths={"my/super.feature:34"})
Run Code Online (Sandbox Code Playgroud)
我试着修改它
@Cucumber.Options(paths={"src/test/resources/"})
Run Code Online (Sandbox Code Playgroud)
但注释@Cucumber.Options根本不可用.我pom.xml有这种依赖:
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.10</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>info.cukes</groupId>
<artifactId>cucumber-java</artifactId>
<version>1.0.0.RC20</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>info.cukes</groupId>
<artifactId>cucumber-junit</artifactId>
<version>1.0.0.RC20</version>
<scope>test</scope>
</dependency>
Run Code Online (Sandbox Code Playgroud)
我错过了什么吗?
更新我遗漏了一些东西:黄瓜特征文件必须在子目录中src/test/resources/mypackage/.否则,junit测试不会接收它.
当我将它们放在同一目录中时src/main/test/,我可以运行我的功能测试,所以它对我来说不是一个阻止器.但我想了解整个设置.
lan*_*oxx 17
看看我的问题在这里:
您可以通过在选项注释中设置要素属性来指定类路径上的位置
@Cucumber.Options(features="src/test/resources")
Run Code Online (Sandbox Code Playgroud)
编辑:
在新版本的代码是
@CucumberOptions(features="src/test/resources")
Run Code Online (Sandbox Code Playgroud)
mar*_*ers 14
我参加派对已经很晚了(4年!)但是认为这是值得回答的,因为没有人提到classpath评估,上面的解决方案在Maven多模块情况下不起作用.
该List configuration options选项在Cucumber文档中并不明显(也不在JavaDoc中),我最终从CLI文档中推断出它,其中记录了其他位置选项.请参阅src/test/resources文档中的 部分.
这就是让我在Maven多模块项目中运行(从IDE和命令行运行)的原因.
@CucumberOptions(
features = {"classpath:product"},
//...
)
public class RunCukesTest extends AbstractTestNGSpringContextTests {
Run Code Online (Sandbox Code Playgroud)
我的功能文件所在的位置
main-project
sub-module-1
src/test/java/com/foo/
RunCukesTest.java
src/test/resources/product/
feature_1.feature
feature_2.feature
sub-module-2
...
Run Code Online (Sandbox Code Playgroud)
我不高兴看到/这条路.
小智 7
您可以使用
@CucumberOptions(
format = "pretty",
tags = {"~@Ignore"},
features = "src/test/resources/com/" //refer to Feature file
)
Run Code Online (Sandbox Code Playgroud)
用于扫描包中的所有功能文件
好吧,我只能把它放在星期一早上......我使用的目录布局不正确,我忘了将黄瓜功能放入与我的包结构匹配的子目录中.
确保您还创建了所需的包目录src/test/resources/!
| 归档时间: |
|
| 查看次数: |
60318 次 |
| 最近记录: |