我在Eclipse中使用Maven来运行Cucumber测试。项目结构如下:
我在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测试可以。
答案 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{
}