为什么使用Maven返回结果运行Cucumber测试"测试运行:0"?

时间:2015-11-26 12:11:15

标签: eclipse maven junit cucumber-jvm

我在Eclipse中使用Maven来运行Cucumber测试。项目结构如下:

enter image description here

我在Junit runner下面使用

@RunWith(Cucumber.class)
@CucumberOptions(
features={"src/test/resources/feature"}
,glue={"test.java.stepdefinition"}
)
public class CucumberJunitTest {
}

测试似乎运行良好。它为方案和步骤打印了正确的日志。

-------------------------------------------------------
 T E S T S
-------------------------------------------------------
Running test.java.cucumberjunit.CucumberJunitTest
a global administrator named
Successful Login with Valid Credentials: 1
Successful Login with Valid Credentials: 2
Successful Login with Valid Credentials: 3
Successful Login with Valid Credentials: 4

1 Scenarios ([32m1 passed[0m)
5 Steps ([32m5 passed[0m)
0m0.206s

Tests run: 0, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.85 sec - in test.java.cucumberjunit.CucumberJunitTest

Results :

Tests run: 0, Failures: 0, Errors: 0, Skipped: 0

[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 11.794 s
[INFO] Finished at: 2015-11-26T22:52:07+11:00
[INFO] Final Memory: 14M/191M
[INFO] ------------------------------------------------------------------------

然而,困扰我的是它说测试运行:0, ???

我认为一定有什么不对劲。但可能是什么原因?

BTW,为了验证,我试图在项目中添加另一个TestNG跑步者:

@CucumberOptions(
features = {"src/test/resources/feature"}
,glue={"test.java.stepdefinition"}
)

public class CucumberTestNGPest extends AbstractTestNGCucumberTests{
}

并且TestNG运行程序按预期打印测试运行:1。

有人能提供任何想法吗?非常感谢。

更新:

为了澄清,CucumberJunitTest.java和CucumberTestNGTest.java(在附加的截图CucumberTestNGTest.java名称改为CucumberTestNGPest.java,这样Surefire这次不会运行它)都是Cucumber跑步者。我不明白为什么JUnit测试不能给出"测试运行:1"结果,TestNG测试可以。

2 个答案:

答案 0 :(得分:2)

你有testng和junit以及依赖项。尽量只使用junit,这样maven结果就不会被覆盖。

我在pom中需要的最小依赖列表:

@Override
public View createView(Context context) {...}

答案 1 :(得分:0)

我认为这个缺失了,它是结果插件。我认为这可以解决问题。

@CucumberOptions(plugin = { "pretty","json:target/stepdefinition.json" }
features = {"src/test/resources/feature"}
,glue={"test.java.stepdefinition"}
)

public class CucumberTestNGPest extends AbstractTestNGCucumberTests{
}