无法在Cucumber-Maven中运行testng.xml(TestNG)

时间:2018-12-28 05:01:17

标签: java maven selenium-webdriver cucumber testng

在eclipse IDE中,我通过使用Maven项目创建了一个基本的Cucumber框架。

我已经添加了pom.xml中所需的所有依赖项。对于TestNG插件,添加了以下依赖项。

 <dependency>       
      <groupId>org.testng</groupId>
        <artifactId>testng</artifactId>              
        <version>6.14.3</version>
        <scope>test</scope>         
</dependency> 
<dependency>
        <groupId>info.cukes</groupId>
        <artifactId>cucumber-testng</artifactId>
        <version>1.2.5</version>   
 </dependency>

但是“ TestNG Suite”选项不是首选项,因此通过“帮助”->“安装新软件”安装了TestNG。

框架具有特征文件(描述了场景),stepdefinitions(给出了代码/逻辑)和流道类(要使用stepdefinitions文件映射特征并运行它)。

亚军类:

package tests.report.runners;

import cucumber.api.CucumberOptions;


@CucumberOptions(features = "src/test/resources/features",glue= {"tests"},tags= {"@Report"})
public class ReportRunner  {
    }

像这样,我每个模块都有一个跑步者课程(端到端场景)

例如:

  • 登录,转到产品页面并注销

  • 登录,生成报告并注销

我正在尝试通过testng.xml文件运行这些运行程序类

testng.xml文件

 <?xml version="1.0" encoding="UTF-8"?> 
 <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
   <suite name="First Suite" parallel="classes"> 
    <test name="Chrome Test" parallel="classes">
       <classes> 
           <class name ="tests.report.runners.ReportRunner"></class>
       </classes> 
   </test> 
</suite>

但是它抛出以下错误

Output screen shot

1 个答案:

答案 0 :(得分:0)

问题是由于Maven存储库中存储的垃圾罐不兼容。

请按照以下步骤

  1. 清除旧属性/ maven依赖项(从您的项目目录中打开命令提示符 并运行以下命令)
    • mvn eclipse:clean
    • mvn eclipse:eclipse -Dwtpversion = 2.0
  2. 下载以下黄瓜jar文件并添加您的项目(不要将其添加到pom中 直接)

    <dependency>
        <groupId>info.cukes</groupId>
        <artifactId>cucumber-core</artifactId>
        <version>1.2.5</version>
    </dependency>
    <dependency>
        <groupId>info.cukes</groupId>
        <artifactId>cucumber-java</artifactId>
        <version>1.2.5</version>
    </dependency
    <dependency>
        <groupId>info.cukes</groupId>
        <artifactId>cucumber-jvm-deps</artifactId>
        <version>1.0.5</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>info.cukes</groupId>
        <artifactId>gherkin</artifactId>
        <version>2.12.2</version>
        <scope>provided</scope>
    </dependency>
    
  3. 确保您已经将TestNG库添加到项目中

  4. 在pom.xml文件中添加以下cumul-testng依赖项

    <dependency>
       <groupId>info.cukes</groupId>
       <artifactId>cucumber-testng</artifactId>
       <version>1.2.5</version>
    </dependency>
    
  5. 使用AbstractTestNGCucumberTests扩展跑步者类

  package tests.report.runners;
  import org.testng.annotations.Test;
  import cucumber.api.testng.AbstractTestNGCucumberTests;
  import cucumber.api.CucumberOptions;
  @Test
  @CucumberOptions(features = "src/test/resources/features",glue= {"tests"},tags= 
  {"@Report"})
  public class ReportRunner extends AbstractTestNGCucumberTests {
  }
  1. 使用下面的testng.xml文件执行
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="First Suite" >
<test name="Chrome Test" >
<classes>
<class name ="tests.report.runners.ReportRunner"></class>
</classes> 
</test>
</suite>

谢谢!