TestNG是一个测试框架,专注于提供Java编程语言中的单元和功能测试功能。它支持并行测试,数据提供程序,依赖项,组和其他功能。
我正在创建一个使用 cucumber、junit 和 TestNG 的自动化项目。 我的POM文件如下: 我正在创建一个使用 cucumber、junit 和 TestNG 的自动化项目。 我的POM文件如下: <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>main.project</groupId> <artifactId>project</artifactId> <version>0.0.1-SNAPSHOT</version> <name>project</name> <!-- FIXME change it to the project's website --> <url>http://www.example.com</url> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <maven.compiler.source>1.7</maven.compiler.source> <maven.compiler.target>1.7</maven.compiler.target> </properties> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.11</version> <scope>test</scope> </dependency> <dependency> <groupId>org.seleniumhq.selenium</groupId> <artifactId>selenium-java</artifactId> <version>3.141.59</version> </dependency> <dependency> <groupId>org.testng</groupId> <artifactId>testng</artifactId> <version>7.3.0</version> <scope>test</scope> </dependency> <!-- https://mvnrepository.com/artifact/commons-io/commons-io --> <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>2.5</version> </dependency> <!-- https://mvnrepository.com/artifact/com.aventstack/extentreports --> <dependency> <groupId>com.aventstack</groupId> <artifactId>extentreports</artifactId> <version>5.0.5</version> </dependency> <!-- https://mvnrepository.com/artifact/io.cucumber/cucumber-junit --> <dependency> <groupId>io.cucumber</groupId> <artifactId>cucumber-junit</artifactId> <version>6.9.0</version> <scope>test</scope> </dependency> <!-- https://mvnrepository.com/artifact/info.cukes/cucumber-java --> <!-- https://mvnrepository.com/artifact/io.cucumber/cucumber-java --> <dependency> <groupId>io.cucumber</groupId> <artifactId>cucumber-java</artifactId> <version>6.9.0</version> </dependency> <!-- https://mvnrepository.com/artifact/io.cucumber/cucumber-testng --> <dependency> <groupId>io.cucumber</groupId> <artifactId>cucumber-testng</artifactId> <version>6.9.0</version> </dependency> <dependency> <groupId>io.cucumber</groupId> <artifactId>cucumber-java8</artifactId> <version>6.8.1</version> <scope>test</scope> </dependency> </dependencies> <build> <pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) --> <plugins> <!-- clean lifecycle, see https://maven.apache.org/ref/current/maven-core/lifecycles.html#clean_Lifecycle --> <plugin> <artifactId>maven-clean-plugin</artifactId> <version>3.1.0</version> </plugin> <!-- default lifecycle, jar packaging: see https://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_jar_packaging --> <plugin> <artifactId>maven-resources-plugin</artifactId> <version>3.0.2</version> </plugin> <plugin> <artifactId>maven-compiler-plugin</artifactId> <version>3.8.0</version> </plugin> <plugin> <artifactId>maven-surefire-plugin</artifactId> <version>2.22.1</version> <configuration> <suiteXmlFiles> <suiteXmlFile>testng.xml</suiteXmlFile> </suiteXmlFiles> </configuration> </plugin> <plugin> <artifactId>maven-jar-plugin</artifactId> <version>3.0.2</version> </plugin> <plugin> <artifactId>maven-install-plugin</artifactId> <version>2.5.2</version> </plugin> <plugin> <artifactId>maven-deploy-plugin</artifactId> <version>2.8.2</version> </plugin> <!-- site lifecycle, see https://maven.apache.org/ref/current/maven-core/lifecycles.html#site_Lifecycle --> <plugin> <artifactId>maven-site-plugin</artifactId> <version>3.7.1</version> </plugin> <plugin> <artifactId>maven-project-info-reports-plugin</artifactId> <version>3.0.0</version> </plugin> </plugins> </pluginManagement> </build> </project> 我还创建了一个新的 cucumberTestNG.xml 文件 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE suite SYSTEM "https://testng.org/testng-1.0.dtd"> <suite name="Suite"> <listeners> <listener class-name = "project.Listeners"/> </listeners> <test name="Validate User Login"> <classes> <class name="cucumberOptions.TestRunner"/> </classes> </test> </suite> 我的测试运行者: package cucumberOptions; import org.junit.runner.RunWith; import io.cucumber.junit.Cucumber; import io.cucumber.junit.CucumberOptions; import io.cucumber.testng.AbstractTestNGCucumberTests; //@RunWith(Cucumber.class) @CucumberOptions( features = "src/test/java/features", glue = "stepDefinitions") public class TestRunner extends AbstractTestNGCucumberTests { } 如果我使用 TestNG Suite 运行 cucumberTestNG 文件,则会收到以下错误: Dec 09, 2020 9:16:16 PM io.cucumber.testng.TestNGCucumberOptionsProvider warnWhenJUnitCucumberOptionsAreUsed WARNING: Ignoring options provided by io.cucumber.junit.CucumberOptions on cucumberOptions.TestRunner. It is recommend to use separate runner classes for JUnit and TestNG. Dec 09, 2020 9:16:16 PM io.cucumber.core.runtime.FeaturePathFeatureSupplier get WARNING: No features found at classpath:/cucumberOptions 文件夹结构: 我的环境变量中有Java和Maven 我查看了诸如 cucumber jvm CucumberException: No features found at [] 之类的问题 并确保我的正确性用黄瓜进行测试(第一个答案),但没有运气。 如警告中所述 Dec 09, 2020 9:16:16 PM io.cucumber.testng.TestNGCucumberOptionsProvider warnWhenJUnitCucumberOptionsAreUsed WARNING: Ignoring options provided by io.cucumber.junit.CucumberOptions on cucumberOptions.TestRunner. It is recommend to use separate runner classes for JUnit and TestNG. 当前您正在导入 junit cucumber 选项。 import io.cucumber.junit.CucumberOptions; 对于 TestNg 运行器类,您需要导入 testng.CucumberOptions import io.cucumber.testng.CucumberOptions; cucumber-jvm 存储库中的示例 import io.cucumber.testng.AbstractTestNGCucumberTests; import io.cucumber.testng.CucumberOptions; import org.testng.annotations.DataProvider; @CucumberOptions(plugin = { "html:target/results.html", "message:target/results.ndjson" }) public class RunCucumberTest extends AbstractTestNGCucumberTests { @DataProvider(parallel = true) @Override public Object[][] scenarios() { return super.scenarios(); } } 我遇到了同样的问题,我通过将 Cucumber 依赖项从版本 6.11.0 降级到 1.2.6 解决了这个问题,并且我确保 cucumber-java 和 cucumber-testng 具有相同的版本,即 pom.xml 中的 1.2.6你可以看到下面: Aslo 我的 TestRunner 类如下所示,而不是扩展 AbstractTestNGCucumberTests 你应该(cucumber.api.testng.AbstractTestNGCucumberTests) 我也有类似的问题。原因是我有多个与 junit5 和 testng 相关的依赖项,所以我删除了所有与 junit5 相关的依赖项,只保留了 testng 的依赖项。然后,有了功能文件和 testng.xml 的正确路径,它就开始工作了。
如果在 TestNG 中执行组,则不会调用 @Before Suite 和 @BeforeTest 方法
下面是我的 XML 文件和演示类。 Precondition() 方法将在 demo1() 方法之前运行,postCondition() 方法将在 demo1() 方法之后运行。 demo2() 的过程相同。但是当我运行 c...
Allure 报告未在 QAF 框架(testng)中生成。我在 pom.xml 中配置了以下配置 io.qameta.allure 阿尔...
指定测试用例不使用 Cucumber 与 Spring 中的 TestNG 运行器并行运行
我已经能够使用 TestNG 运行程序将项目配置为并行运行测试用例;然而,有一些场景不是很线程安全。如果这些测试用例成功...
java.lang.NoClassDefFoundError:无法初始化类org.mockito.internal.util.MockUtil
我想使用testng + powermock + spring来运行测试代码,我的jar版本是: powermock = 1.6.2 powermock-模块-testng = 1.6.2 模拟 = 1.10.19 测试=6.8.7 弹簧 = 4.1.1.RELEASE JDK = 1.8.0...
Github Actions 测试运行显示 0 个测试,本地运行所有测试均运行正常
我已经设置了一个存储库,用于使用 TestNG 和 Maven 构建/运行 selenium 测试。在我的机器上本地运行测试,测试运行没有任何问题,但是在设置 Github acti 之后...
我目前正在使用 Allure 报告来捕获我的放心测试的结果,但我遇到了挑战。 具体来说,我在过滤或将标头列入黑名单时遇到问题
我想知道@Test中的组参数如何工作。 我们为什么使用组,以及 Junit 和 ... 中 @Test(groups = { "fast" }) 和 @Test(groups = { "slow" }) 之间的区别是什么
线程“main”java.lang.NoSuchFieldError中出现异常:通过testng执行时出现端口错误
在此输入图像描述 请帮助我如何解决上述错误 我正在尝试使用测试框架启动 chrome 浏览器,但收到上述错误消息 场景只是试图自动化...
Reddit.com NoSuchShadowRootException - 但有一个影子根
首先,感谢社区迄今为止的所有人!我是测试课程的学生,有一个项目,我正在使用 Java/Selenium/TestNG 测试 Reddit 的功能。 我有一个哇...
我有 2 个 testng.xml 文件,名为 testng_smoke.xml 和 testng_regression.xml。我已如下配置 pom.xml 来运行这些 testng 文件。 org.ap...
为什么当我没有将自定义侦听器附加到 TestClass 时,而不是通过注释或套件 xml 文件来调用它? (测试NG)
想知道为什么即使我没有将它附加到 TestClass 而不是 xml 文件,我的 customListener 也会被调用? 所以我制作了一个自定义记录器侦听器来实现 ITestListener、IClassLis...
Maven Surefire 不会重新运行失败的 testng 测试,我的配置有什么问题吗?
我是 Surefire 插件的新手,并尝试设置以重新运行片状测试。 我的配置如下: org.apache.maven.plugins 我是 Surefire 插件的新手,并尝试设置以重新运行片状测试。 我的配置如下: <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>3.0.0-M2</version> <configuration> <suiteXmlFiles> <suiteXmlFile>${suiteXmlFile}</suiteXmlFile> </suiteXmlFiles> <rerunFailingTestsCount>1</rerunFailingTestsCount> </configuration> </plugin> 我使用的命令是: mvn clean test -DsuiteXmlFile=testNG.xml -Dsurefire.rerunFailingTestsCount=2 我得到了: [ERROR] Tests run: 2, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 11.12 s <<< FAILURE! - in TestSuite [ERROR] ieTest1(com.mycompany.testcases.Sample.independentTest) Time elapsed: 3.839 s <<< FAILURE! java.lang.AssertionError: expected [true] but found [false] 但是我可以看到生成的 /target/surefire-reports,但没有重新运行。任何人都可以帮忙找出为什么重播没有触发? 根据 http://maven.apache.org/surefire/maven-surefire-plugin/test-mojo.html#rerunFailingTestsCount ,自 3.0.0-M4 以来,rerunFailingTestsCount 仅适用于 JUnit 4+ 提供程序和 JUnit 5+ 提供程序,而不是 TestNG。 我也在调查这个问题,到目前为止最完整的解释似乎就在那里:https://www.toolsqa.com/selenium-webdriver/retry-failed-tests-testng/ 从 3.0.0-M4 开始支持“重新运行”功能,请参阅功能矩阵。 有关更多详细信息,请参阅这些 Jira: 支持 @ParameterizedTest 进行 JUnit 5 测试重新运行 使用 JUnit 5 重新运行失败的测试 如果使用 @DisplayName,Surefire / Failsafe 重新运行失败的测试功能在 JUnit 5 中会失败 不要使用forkCount=0。它在重要的项目中几乎没有用。 干杯 蒂博尔17 使用 maven-surefire-plugin 版本 2.x.x 时,使用 Junit5 重新运行 Surefire 插件的参数将不起作用。需要将maven-surefire-plugin版本升级到3.0.0-M4。 我在项目的 POM 属性中添加了以下版本声明,它解决了问题。 <maven-surefire-plugin.version>3.0.0-M4</maven-surefire-plugin.version>
我无法使用 Maven 运行我的 testng 脚本。每次当我尝试运行 mvn test -Dtest com.example.tests.ScriptTest(); 时,它都会说构建成功 pom.xml ...
AppiumFieldDecorator 无法与 POM 一起使用
我正在尝试使用 Appium、TestNG 和 Maven 实现自动化。我在初始化页面对象模型时遇到错误。附有错误日志。尝试了很多方法,但没有运气。这将是伟大的...
我有在 C:\Users\Chandrasekaran Clipse-workspace\DemoTestForHealenium arge 中编译的类文件
@TestNg [TestNG] 未找到测试。没有运行任何内容 用法:<main class> [选项] 要运行的 XML 套件文件
当我使用“@Test”注释运行测试 ng 方法时,我们遇到异常并且测试未运行。 测试NG类 封装测试NGtest; 导入 org.openqa.selenium.WebDriver; 导入组织。
如何使用 Selenium 在同一浏览器中同时但使用不同的实例运行多个 TestNG.XML 文件
如何使用 Selenium 在同一浏览器中同时但使用不同的实例运行多个 TestNG.XML 文件。 我的 testng.xml 文件中有大量测试类...
我想在 TestNG 中针对不同的测试运行不同的步骤集。这可能吗? 例子: @方法之前 方法1{ 步骤1 第2步 } @方法之前 方法2{ 步骤3 步骤4 } @测试 测试1 { 运行M...
努力寻找答案 引起原因:java.lang.NullPointerException:无法调用“io.cucumber.testng.TestNGCucumberRunner.provideScenarios()”,因为“this.testNGCucumberRunner&...