我在 Eclipse 中使用 Maven 来运行 Cucumber 测试。项目结构如下:
我在下面使用了 Junit 运行程序
@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,???
我想一定是出了什么问题。但这可能是什么原因呢?
顺便说一句,为了验证,我尝试在项目中添加另一个 TestNG 运行程序:
@CucumberOptions(
features = {"src/test/resources/feature"}
,glue={"test.java.stepdefinition"}
)
public class CucumberTestNGPest extends AbstractTestNGCucumberTests{
}
并且 TestNG 运行程序正在按预期打印 Tests run: 1。
有人可以提供任何想法吗?非常感谢。
更新:
澄清一下,CucumberJunitTest.java 和 CucumberTestNGTest.java(在附图中,CucumberTestNGTest.java 名称已更改为 CucumberTestNGPest.java,以便 Surefire 这次不会运行它)都是 Cucumber 运行程序。我不明白为什么 JUnit 测试不能给出“Test run: 1”结果,而 TestNG 测试可以。
最佳答案
您有 testng 和 junit 以及依赖项。尝试仅使用 junit,这样 Maven 结果就不会被覆盖。
我的 pom 中需要的最小依赖项列表:
<properties>
<properties>
<junit.version>4.11</junit.version>
<selenium.version>2.50.1</selenium.version>
<cucumber.version>1.2.0</cucumber.version>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>${junit.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>info.cukes</groupId>
<artifactId>cucumber-java</artifactId>
<version>${cucumber.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>info.cukes</groupId>
<artifactId>cucumber-junit</artifactId>
<version>${cucumber.version}</version>
<scope>test</scope>
</dependency>
</dependencies>
关于eclipse - 为什么使用 Maven 运行 Cucumber 测试返回结果 "Tests run: 0"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33938393/