TestNG是一个测试框架,专注于提供Java编程语言中的单元和功能测试功能。它支持并行测试,数据提供程序,依赖项,组和其他功能。
如何在运行包含 Testng 项目的 java jar 时在命令行中给出组运行参数
运行 jar e,g 时 java -jar a.jar -testjar a.jar -xmlpathjar Test.xml 运行 jar e,g 时 java -jar a.jar -testjar a.jar -xmlpathjar Test.xml <!xml version="1.0" encoding="UTF-8"?> <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd"> <suite name="Suite" parallel="false"> <test name="Test"> <groups> <run> <include name="brokenTests"/> <include name="checkinTests"/> </run> </groups> <classes> <class name="organized.chaos.GroupsPlayGround" /> </classes> </test> <!-- Test --> </suite> <!-- Suite --> 如何在参数中仅给出损坏的测试名称java -jar a.jar -testjar a.jar -xmlpathjar Test.xml 这样只有这组测试用例才会被执行? 期望在参数本身中给出运行组 如果您想通过命令行参数指定组名称,那么您应该将其作为 -groups 传递(这里我假设您的可执行 jar 将直接从 org.testng.TestNG java 类中调用 main 方法 更多详情请参考https://testng.org/#_command_line_parameters 如果您要使用套件文件并且仍然希望能够指定组名称,那么您应该使用 beanshell。 更多详情请参阅文档https://testng.org/#_beanshell_and_advanced_group_selection 这是一个示例 xml 文件,展示了如何使用 beanshell,然后检索组名称并使用它来运行,如下所示: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd"> <suite name="Suite" parallel="false"> <test name="Test"> <method-selectors> <method-selector> <script language="beanshell"> <![CDATA[ whatGroup = System.getProperty("groupToRun"); groups.containsKey(whatGroup); ]]> </script> </method-selector> </method-selectors> <classes> <class name="organized.chaos.GroupsPlayGround" /> </classes> </test> <!-- Test --> </suite> <!-- Suite --> 您可以参考我的博文了解更多详细信息https://rationaleemotions.com/beanshell_in_testng/
TestNG.xml - 错误“元素类型“classes”的内容必须匹配“(class*,parameter*)”。”
下面的xml文件是我的TestNG.xml。当我添加方法标签时,这显示错误: <...
在文本字段中输入文本后,我需要验证文本。 sendKeys 工作得很好,我可以将其发送到文本字段,但无法从文本字段检索相同的值。我用过g...
在 testng.xml 之外使用 IAnnotationTransformer
据我了解,IAnnotationTransformer 类在套件启动之前运行,因此它不能像 ITestListener 那样在类级别上声明。所以这个的用法我
当要依赖的测试与具有该注释的测试属于同一类时,@Test 注释的 dependentOnMethods 属性可以正常工作。但如果...
“运行 | 调试”选项显示在 Eclipse 中使用 TestNG 和 Selenium 的每个测试上方
我最近不得不安装新的 Eclipse 和 TestNG,现在这个新选项显示在每个测试上方。我想删除它,但找不到它的配置。有任何想法吗? “运行|调试&q...
我创建了一个方法级java自定义注释,如下所示 @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.METHOD) 公共@接口测试{ public String id() 默认“0”; } 测试类...
与 Selenium、Java、TestNG 并行运行测试的奇怪问题
当我运行测试(不是并行)时,一切正常。但是当我尝试运行相同的测试两次时,发生了很多奇怪的事情。要么是空白页,要么如果其中一个页面关闭,它们都会关闭并且
Testng - 无效版本“6.3-201110161418”:非数字“3-201110161418”
面向 Web 开发人员的 Eclipse Java EE IDE。 版本:Mars.2 发布 (4.5.2) 内部版本号:20160218-0600 TestNG 6.9.11.201604020423 org.testng.eclipse.feature.group 塞德里克·博伊斯特 测试失败,因为...
当 eclipse 尝试根据其 DTD 验证 XML 时,我总是在 TestNG XML 配置文件中的测试标记(位于行 test name="Bing-Search-Sample...)处收到此错误。该文件是 wo ...
TestNG @BeforeMethod 方法驻留在超类中并且运行特定组时不会被调用
我正在尝试使用一个组来运行与我正在从事的称为“当前”的工作相关的测试子集。 问题是,如果我使用超类在 @BeforeMethod 中进行一些设置,该方法将运行...
Guava 通过 testng 传递性地添加到工件中,在 maven 中添加为测试依赖项
在我的maven项目中,我添加了带有测试范围的testng。 org.testng 测试 在我的 Maven 项目中,我添加了 testng 和 test 范围。 <dependency> <groupId>org.testng</groupId> <artifactId>testng</artifactId> <version>7.1.0</version> <scope>test</scope> </dependency> 我观察到 guava 所依赖的 testng 版本的类文件最终出现在我的 fat jar 中(我用 maven-assembly-plugin 构建了 fat jar)。 Guava 没有直接作为依赖项添加到我的项目中,而是依赖于我在项目中添加的 protobuf-java-util 依赖项。我观察到的是,fat jar 中包含的 guava 类文件来自 testng 依赖的 guava 版本,而不是 protobuf-java-util 依赖的版本 当我从 testng 中排除番石榴时,我可以观察到正确版本的 guava 是从 protobuf-java-util 中传递过来的。 <dependency> <groupId>org.testng</groupId> <artifactId>testng</artifactId> <version>7.1.0</version> <scope>test</scope> <exclusions> <exclusion> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> </exclusion> </exclusions> </dependency> 请注意,我正在观察的模块是一个距根 pom 两层深的嵌套子模块,并且 testng 依赖项位于根 pom 中。我还观察到,如果我更改添加 protobuf-java-util 依赖项的位置,它会优先于从 testng 派生的版本。 我在 mvn:dependency-tree 输出中也观察到了同样的情况,其中 guava 未显示在 protobuf-java-util 下,而是显示在 testng 下(具有 test 范围),当我添加上面的排除项时,它正确显示在protobuf-java-util。 这是什么原因呢?根据我阅读 maven 文档的理解,test作用域依赖项仅用于测试执行,所以我不希望在我的胖罐子中看到它们。 可悲的是,test依赖关系在构建 JAR 时不仅仅被忽略。 Maven 确定每个(传递)依赖项的范围和版本,在您的情况下,范围 compile 获胜(如预期),但似乎 test 依赖项的版本获胜。 一般来说,Maven 依赖调解不值得您太信任。在许多情况下,最好在 POM(或某些父 POM 或 BOM)中定义 <dependencyManagement> 条目来修复某个版本,这样您就不会得到惊喜。
我有这个 TestNG 部分: 我有这个 TestNG 部分: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd"> <suite name="Suite"> <listeners> <listener class-name="ShufersalMiron.Sprod.Listeners"/> </listeners> <test name="Test1"> <classes> <class name="ShufersalMiron.Sprod.PA_Coupons"/> </classes> </test> <!-- Test --> <test name="Test2"> <classes> <class name="ShufersalMiron.Sprod.PA_SupermeCoins"/> </classes> </test> <!-- Test --> </suite> <!-- Suite --> 当我尝试将其作为套件运行时,我收到此错误: 有人可以告诉我可能出了什么问题以及如何解决吗? 谢谢。 该错误可能是由于依赖项冲突造成的。 extentreports-java 版本 5.0.9(目前最新) https://github.com/extent-framework/extentreports-java/blob/master/pom.xml 使用 io.reactivex.rxjava3:rxjava-3.0.4 和 org.testng:testng-7.3.0。 我可以建议 2 个选项: 尝试添加 io.reactivex.rxjava3 依赖项,因为 NoClassDefFound 错误引用了此内容。 马夫: <dependency> <groupId>io.reactivex.rxjava3</groupId> <artifactId>rxjava</artifactId> <version>3.0.4</version> </dependency> 摇篮: implementation 'io.reactivex.rxjava3:rxjava:3.0.4' 尝试使用 testNG 7.3.0 而不是 7.4.0。 7.1 版本,但 [RemoteTestNG] 检测到 TestNG 版本 7.9.0。并且pom只包含一个testng,不存在冲突。你能告诉我如何解决这个问题吗?
我正在从另一个项目的 pom.xml 创建一个可执行 JAR 文件,然后将其放置在我想要使用它的 TestNG 项目所在的目录中。我的目标是运行 TestNG.xml 文件...
我正在从事自动化项目,我需要使用 testNG 并行运行测试。当我只运行一个实例时,一切正常,但是当像这样运行时: @Test(调用计数 = 3,
selenium TestNG 中的断言(Assert 类型未定义方法assertEquals(String, String))
遇到的错误: 失败:f java.lang.Error:未解决的编译问题: Assert 类型未定义方法assertEquals(String, String) 首先打包TestNGpackage; 导入net.jodah。
我正在使用 TestNG 和 Java 使用 Selenide 框架。我的测试在运行多个 @Test 注释时失败。对于单个@Test,它正在工作。 公共类登录测试{ @测试前...
如何使用 Mockito 和 TestNG 模拟在方法内创建的对象[重复]
我正在尝试为 MyClass 中的方法编写单元测试,该方法创建 DependentClass 的实例并调用其方法 dependentMethod。在我的测试中,我想重写 dependentM 的行为...
java.lang.NullPointerException 尝试将页面对象与 Appium 和 TestNG 一起使用
我正在尝试使用 Browserstack 使用 Appium 和 TestNG 编写基本测试。我正在尝试添加页面对象,但是当我尝试构造页面对象时,我不断收到空指针异常。 康...