【发布时间】:2019-12-06 12:14:06
【问题描述】:
我有一个黄瓜项目。当我右键单击 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 时,功能没有运行。 这是输出。
T E S T S
运行测试套件 配置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>-->
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>6.14.3</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.6</version>
<scope>test</scope>
</dependency>
我已尝试添加 mvn surefire 插件并在其中包含我的 RunnerTest 类。
<build>
<pluginManagement>
<plugins>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.12.4</version>
<configuration>
<includes>
<include>RunnerTest.java</include>
</includes>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
但这也不起作用
【问题讨论】:
-
您的课程正在导入 JUnit 注释 (
@RunWith),而您的 Maven 输出显示它正在尝试使用 TestNG -
@JeroenSteenbeeke 谢谢。你能告诉我如何克服这个问题吗?我也需要我的 TestNG 依赖项,因为我正在使用 testNG 断言
-
我对 Cucumber 的经验有限,也没有使用 TestNG 的经验,所以我能做的最好的就是询问 Google。我的发现表明您应该删除
@RunWith注释并让测试类扩展AbstractTestNGCucumberTests(来源:github.com/cucumber/cucumber-jvm/tree/master/testng) -
@JeroenSteenbeeke 啊谢谢。但我的期望是使用 Junit 而不是 TestNG 运行它。就目前而言,我评论了非常 TestNG 依赖并尝试再次运行。仍然 maven 尝试使用 TestNG 执行。不知道为什么。我也在谷歌搜索。谢谢你的建议。
标签: java maven cucumber pom.xml