我有一个使用Cucumber + JUnit的测试示例,并且工作正常。但是后来我将其更改为与TestNG一起使用,但未找到场景。当我在Eclipse中执行TestNG(以-> TestNG Test运行)的测试时,我得到以下消息:
[RemoteTestNG]检测到TestNG版本7.0.1,2020年4月14日下午1:36:06 io.cucumber.testng.TestNGCucumberRunner ADVERTENCIA:默认情况下 黄瓜以--non-strict模式运行。此默认值将更改为 --strict和--non-strict将被删除。您可以使用--strict或@CucumberOptions(strict = true)禁止显示此警告,2020年4月14日 下午1:36:06 io.cucumber.core.runtime.FeaturePathFeatureSupplier获取 ADVERTENCIA:找不到任何功能 类路径:/ com / other / cucumber / testrunner
0个场景0个步骤0m0,000s
我发现它很奇怪:
ADVERTENCIA:找不到任何功能 类路径:/ com / other / cucumber / testrunner
尽管我的跑步者类配置为在com / other / cucumber / feature上查找.feature文件,如下所示:
com.other.cucumber.testrunner.CucumberIntegrationTest
@RunWith(Cucumber.class)
@CucumberOptions(
features = "classpath:com/other/cucumber/feature",
glue="com.other.cucumber.stepdefinition",
tags = {"@RegressionTest"},
plugin = { "pretty",
"html:target/cucumber/concatTest",
"json:target/cucumber/concatTest.json"})
public class CucumberIntegrationTest extends AbstractTestNGCucumberTests {
}
.feature文件放置在src / test / resources / com / other / cucumber / feature中,并且由JUnit找到(由JUnit执行时),但没有由TestNG找到。
TestNG.xml
<!DOCTYPE suite SYSTEM "https://testng.org/testng-1.0.dtd" >
<suite name="Suite1" verbose="1" >
<test name="Nopackage">
<classes>
<class name="com.other.cucumber.testrunner.CucumberIntegrationTest" />
</classes>
</test>
</suite>
pom.xml
<dependency>
<groupId>io.cucumber</groupId>
<artifactId>cucumber-java</artifactId>
<version>5.6.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>io.cucumber</groupId>
<artifactId>cucumber-junit</artifactId>
<version>5.6.0</version>
</dependency>
<dependency>
<groupId>io.cucumber</groupId>
<artifactId>cucumber-testng</artifactId>
<version>5.6.0</version>
</dependency>
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>7.1.0</version>
<scope>test</scope>
</dependency>
经过大量的试验/错误工作后,我将其与TestNG一起运行,但是我不得不将Cucumber依赖项从当前的io.cucumber
降级为以前的info.cukes
:
<dependency>
<groupId>info.cukes</groupId>
<artifactId>cucumber-java</artifactId>
<version>1.2.4</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>info.cukes</groupId>
<artifactId>cucumber-junit</artifactId>
<version>1.2.4</version>
</dependency>
<dependency>
<groupId>info.cukes</groupId>
<artifactId>cucumber-testng</artifactId>
<version>1.2.4</version>
</dependency>
使用TestNG运行最新版本的Cucumber需要什么?