黄瓜/黄瓜测试被TestNG忽略,但可与JUnit一起使用

时间:2020-04-14 13:01:32

标签: java cucumber testng

我有一个使用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需要什么?

0 个答案:

没有答案