不能在 Cucumber-Maven(TestNG) 中 运行 testng.xml
Can't run testng.xml in Cucumber-Maven(TestNG)
在 eclipse IDE 中,我使用 Maven 项目创建了一个基本的 cucumber 框架。
我已经添加了 pom.xml.For 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(code/logic给出)和运行ner class(用stepdefinitions文件和运行映射特征它)。
亚军class:
package tests.report.runners;
import cucumber.api.CucumberOptions;
@CucumberOptions(features = "src/test/resources/features",glue= {"tests"},tags= {"@Report"})
public class ReportRunner {
}
像这样我每个模块都有一个运行ner class(端到端场景)
例如:
登录,转到产品页面并注销
登录、生成报告和注销
我正在尝试 运行 这些 运行ner class by testng.xml file
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>
但是抛出以下错误
问题是因为存储在 maven 存储库中的不兼容的垃圾 jar。
请按照以下步骤操作
- 清除旧的 properties/maven 依赖项(从您的项目目录打开命令提示符
和 运行 下面的命令)
- mvn eclipse:clean
- mvn eclipse:eclipse -Dwtpversion=2.0
下载下面的cucumber 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>
确保您已经将 TestNG 库添加到项目中
在 pom.xml 文件中添加以下 cucumber-testng 依赖项
<dependency>
<groupId>info.cukes</groupId>
<artifactId>cucumber-testng</artifactId>
<version>1.2.5</version>
</dependency>
用 AbstractTestNGCucumberTests
扩展 运行ner class
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 {
}
- 使用以下 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>
谢谢!
在 eclipse IDE 中,我使用 Maven 项目创建了一个基本的 cucumber 框架。
我已经添加了 pom.xml.For 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(code/logic给出)和运行ner class(用stepdefinitions文件和运行映射特征它)。
亚军class:
package tests.report.runners;
import cucumber.api.CucumberOptions;
@CucumberOptions(features = "src/test/resources/features",glue= {"tests"},tags= {"@Report"})
public class ReportRunner {
}
像这样我每个模块都有一个运行ner class(端到端场景)
例如:
登录,转到产品页面并注销
登录、生成报告和注销
我正在尝试 运行 这些 运行ner class by testng.xml file
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>
但是抛出以下错误
问题是因为存储在 maven 存储库中的不兼容的垃圾 jar。
请按照以下步骤操作
- 清除旧的 properties/maven 依赖项(从您的项目目录打开命令提示符
和 运行 下面的命令)
- mvn eclipse:clean
- mvn eclipse:eclipse -Dwtpversion=2.0
下载下面的cucumber 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>
确保您已经将 TestNG 库添加到项目中
在 pom.xml 文件中添加以下 cucumber-testng 依赖项
<dependency> <groupId>info.cukes</groupId> <artifactId>cucumber-testng</artifactId> <version>1.2.5</version> </dependency>
用 AbstractTestNGCucumberTests
扩展 运行ner class
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 { }
- 使用以下 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>
谢谢!