猿问

运行 Maven 测试时未执行黄瓜测试

我有一个黄瓜项目。当我右键单击 RunnerTest 类并“运行“RunnerTest”时,功能文件中的所有功能开始运行。所有测试都通过了。


我的 RunnerTest.class


   import cucumber.api.CucumberOptions;

import cucumber.api.junit.Cucumber;

import java.sql.SQLException;

import lombok.extern.log4j.Log4j2;

import org.junit.BeforeClass;

import org.junit.runner.RunWith;


@RunWith(Cucumber.class)

@CucumberOptions(

features = {"classpath:foo.feature"},

glue = "com.foo.foobar.StepDefinitions",

plugin = {"json:target/cucumber-report/cucumber.json"},

monochrome = true,

strict = true

//,dryRun = true

)


@Log4j2

public class RunnerTest {}

但是当我尝试运行 mvn test 或 mvn clean install 功能时,它们没有运行。这是输出。

测试

运行 TestSuite 配置 TestNG:org.apache.maven.surefire.testng.conf.TestNG652Configurator@515f550a 测试运行:0,失败:0,错误:0,跳过:0,经过的时间:0.895 秒


结果 :


测试运行:0,失败:0,错误:0,跳过:0


这些是我的 POM 依赖项


<dependency>

  <groupId>io.cucumber</groupId>

  <artifactId>cucumber-junit</artifactId>

  <version>3.0.0</version>

  <scope>test</scope>

</dependency>

<dependency>

  <groupId>io.cucumber</groupId>

  <artifactId>cucumber-core</artifactId>

  <version>3.0.0</version>

  <scope>test</scope>

</dependency>

<dependency>

  <groupId>io.cucumber</groupId>

  <artifactId>cucumber-java</artifactId>

  <version>3.0.0</version>

  <scope>test</scope>

</dependency>

<dependency>

  <groupId>io.cucumber</groupId>

  <artifactId>cucumber-jvm</artifactId>

  <version>3.0.0</version>

  <type>pom</type>

</dependency>

<dependency>

  <groupId>io.cucumber</groupId>

  <artifactId>cucumber-jvm-deps</artifactId>

  <version>1.0.6</version>

</dependency>

<dependency>

  <groupId>io.cucumber</groupId>

  <artifactId>gherkin</artifactId>

  <version>4.1.3</version>

</dependency>

<!--<dependency>-->

  <!--<groupId>junit</groupId>-->

  <!--<artifactId>junit</artifactId>-->

  <!--<version>4.12</version>-->

<!--</dependency>-->


慕雪6442864
浏览 155回答 1
1回答

Cats萌萌

已知问题:&nbsp;如果您同时保留 Junit 和 TestNG 两个依赖项,那么 TestNG 依赖项会导致 Surefire 忽略 JUnit 包装器类。解决方案:可能有多种处理方式,比如我们可以定义 2 个执行,每个用于 TestNG 和 JUnit,并根据需要禁用一个。你能试试这个吗:请删除任何直接/间接的 TestNG 依赖项。org.testng testng 6.14.3 测试并尝试添加以下一个 -io.cucumber 黄瓜测试 3.0.0另外,我建议您再做一件事来保持您的 pom.xml 干净。关键 :我们不会混合直接和传递依赖,特别是他们的版本!这样做会导致不可预知的结果。通过 JUnit 执行黄瓜您应删除 cucumber-core、cucumber-java、cucumber-jvm、cucumber-jvm-deps、gherkin,因为这些是传递依赖项,当您在直接(主要)依赖项下方添加时,它们将由 Maven 添加。只需在下面添加 2 和一个用于上面共享的 testng。<dependency>&nbsp; &nbsp; <groupId>io.cucumber</groupId>&nbsp; &nbsp; <artifactId>cucumber-junit</artifactId>&nbsp; &nbsp; <version>3.0.0</version></dependency><dependency>&nbsp; &nbsp; <groupId>io.cucumber</groupId>&nbsp; &nbsp; <artifactId>cucumber-picocontainer</artifactId>&nbsp; &nbsp; <version>3.0.0</version></dependency>
随时随地看视频慕课网APP

相关分类

Java
我要回答