我想通过TestRunner类运行一个基本cucumber特性文件作为TestNG测试,以促进Intellij中cucumber TestNG的集成。
请注意,我能够成功地将cucumber场景作为cucumberjava测试运行。
但是当尝试通过testrunner类扩展AbstractTestNGCucumberTests通过cucumber testNG集成运行相同的功能文件场景时,会发生以下情况:
>
未执行功能文件中提到的任何场景
浏览器根本无法启动。
控制台窗口显示测试通过,如下所示
为了作为testNG测试运行,我在Intellij中尝试了两种运行配置,首先运行TestRunner类本身,为此我转到了运行配置-在testNG下添加了一个模板,并确保了以下内容:
测试类型:类,类:指向TestRunner类,VM选项:-ea-Dtestng.dtd.http=true,工作目录:$MODULE_WORKING_DIR$。
第二个尝试运行TestNG。运行配置窗口中的xml文件:Test-Kind:Suite,Class:指向项目目录中的testngXML文件,VM-options:-ea-Dtestng。dtd。http=true,工作目录:$MODULE\u Working\u DIR$。
注意:-尝试运行testNG时,在运行配置中收到错误警告“无法解析testNG.xml”。如果有人能告诉我缺少什么,我将不胜感激。。
[在此输入图片描述][1]
我的POM。xml具有以下依赖关系:
<dependency>
<groupId>io.cucumber</groupId>
<artifactId>cucumber-java</artifactId>
<version>6.8.1</version>
</dependency>
<dependency>
<groupId>io.cucumber</groupId>
<artifactId>cucumber-picocontainer</artifactId>
<version>6.8.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>io.cucumber</groupId>
<artifactId>cucumber-testng</artifactId>
<version>6.8.1</version>
</dependency>
<dependency>
<groupId>io.cucumber</groupId>
<artifactId>cucumber-jvm-deps</artifactId>
<version>1.0.6</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>io.cucumber</groupId>
<artifactId>cucumber-core</artifactId>
<version>6.8.1</version>
</dependency>
TestRunner类是:
import io.cucumber.testng.TestNGCucumberRunner;
import io.cucumber.testng.CucumberOptions;
import io.cucumber.testng.AbstractTestNGCucumberTests;
import io.cucumber.testng.FeatureWrapper;
import io.cucumber.testng.CucumberOptions;
import io.cucumber.testng.PickleWrapper;
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
//@RunWith( ExtendedCucumber.class)
@CucumberOptions(
features = "classpath:Features",
glue={"com/cucumber/Projects/StepDefinitions"},
tags="@Type1",
dryRun=true,
monochrome=true,
/*plugin = {"html:target/cucumber-html-report",
"json:target/cucumber.json", "pretty:target/cucumber-pretty.txt" ,
"com.cucumber.listener.ExtentCucumberFormatter:target/cucumber-reports/RunResults.html"},*/
plugin = {"html:target/cucumber-html-report","json:target/cucumber.json","pretty:target/cucumber-pretty.txt"},
strict = true)
public class TestRunner extends AbstractTestNGCucumberTests {
private TestNGCucumberRunner testNGCucumberRunner;
@BeforeClass( alwaysRun = true )
public void setUpClass() {
testNGCucumberRunner = new TestNGCucumberRunner( this.getClass() );
}
@Test( groups = "cucumber", description = "Runs Cucumber Feature", dataProvider = "features" )
public void feature( PickleWrapper pickleWrapper,FeatureWrapper cucumberFeature ) {
testNGCucumberRunner.runScenario( pickleWrapper.getPickle());
}
@DataProvider
public Object[][] features() {
return testNGCucumberRunner.provideScenarios();
}
@AfterClass( alwaysRun = true )
public void tearDownClass() {
testNGCucumberRunner.finish();
}
}
TestNGxml文件:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "https://testng.org/testng-1.0.dtd">
<suite name="Suite" parallel="instances" thread-count="3">
<test name="testRunner">
<classes>
<class name="com.cucumber.Projects.TestRunner.TestRunner"/>
</classes>
</test>
</suite>
控制台窗口输出:
===============================================
Default Suite
Total tests run: 1, Failures: 0, Skips: 0
=============================================== ```
Process finished with exit code 0 *
[1]: https://i.stack.imgur.com/iDBdR.png
我不认为你可以同时合并TestNG和Cucumber。在一个项目中,您可以同时开发它们,甚至可以单独运行它们,但不能同时执行它们。
我试图使用TestNG和SpringBootTest并行运行两个Cucumber测试,但当我的测试执行时,会发生以下情况 两个浏览器都打开并导航到维基百科主页 1个浏览器继续测试,另一个留在主页上 1个测试通过,另一个测试失败 我不知道为什么一个测试会停止执行,欢迎任何帮助。 回购:https://github.com/cmccarthyIrl/spring-cucumber-testng-par
我试图通过testng运行简单的Cucumber/Java测试。xml。 所以,我有testng。xml: 我用的是runner。类,在其中我将路径/选项/etc设置为功能文件、步骤和报告: 但是当我运行testng时。xml作为TestNG套件,它: 1) 通过我自己的设想, 但是 我做错了什么?
我正在使用TestNG运行自动Selenium测试。当我作为TestNG套件运行时,一切都很好。但是当我作为Maven Test运行时,它们失败了。我非常困惑为什么他们会在一种情况下工作而不是另一种情况下。以下是测试的总体布局: base.java testbase.java
它在Jenkins slave上工作得很好,但我想为SOAPUI测试用例添加另一个Jenkins slave。但是相同的windows批处理命令在新机器上不起作用。 我在机器上的Jenkins控制台输出中得到以下消息: 我需要在那台机器上设置什么才能使它工作吗? 最后一次编辑:在我们公司,我们有有限的用户帐户。所以我不得不把这个任务交给管理员。他在奴隶身上设置了一些东西,现在对两个奴隶都起同样的作
我有一个使用testng API动态创建testng.xml文件的项目,因此使用java的main函数,我的项目按预期工作,但是如果我使用'run as->maven build'通过maven运行我的项目,看起来只有BeforeSuite和BeforeTest类在运行,而实际的测试并没有运行。以下是我的pom.xml文件: 最后,这是StackTrace: 我想知道我错过了什么。
我有一个带有TestNG的maven项目。我以前使用Eclipse,今天搬到了IntelliJ,我认为我配置正确。但是当我在IntelliJ中运行这个项目时,它不能在下面的错误信息下运行。当使用maven命令运行时,它没有任何问题。 但是当我从IntelliJ跑过来时,我得到: @w@C:\用户\sdymj\AppData\本地\Temp\idea_working_dirs_testng.tmp-