【问题标题】:Why running Cucumber test with Maven return result "Tests run: 0"?为什么使用 Maven 运行 Cucumber 测试返回结果“测试运行:0”?
【发布时间】:2015-11-26 12:11:14
【问题描述】:

我在 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] ------------------------------------------------------------------------

但是,令我困扰的是它说 Tests run: 0,???

我想肯定有什么问题。但是可能是什么原因呢?

顺便说一句,为了验证,我尝试在项目中添加另一个 TestNG 运行器:

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

public class CucumberTestNGPest extends AbstractTestNGCucumberTests{
}

TestNG 运行器正在打印 Tests run: 1 as expected。

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

更新:

澄清一下,CucumberJunitTest.java 和 CucumberTestNGTest.java(在附加的屏幕截图中 CucumberTestNGTest.java 名称更改为 CucumberTestNGPest.java 以便 Surefire 这次不会运行它)都是 Cucumber runner。我不明白为什么 JUnit 测试不能给出 "Test run: 1" 结果,而 TestNG 测试可以。

【问题讨论】:

    标签: eclipse maven junit cucumber-jvm


    【解决方案1】:

    你有 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>
    

    【讨论】:

    • 你说的pom.xml会有同样的错误,它不包含TestNG依赖。我只看到junit和黄瓜junit。你是说 junit/cucumber-junit 冲突,还是 junit/testNG 冲突?
    • 我的意思是 junit-testNg 冲突。你的 pom 里有什么?我展示的这是一个工作示例。此外,还可能缺少其他配置,例如,如果 Maven 日志中未显示场景列表,则这是另一个问题。嗯..你有一个具体的问题 user15...?
    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 2017-01-09
      • 1970-01-01
      • 2019-12-13
      • 1970-01-01
      • 2020-12-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多