如何在 TestNG 失败时添加自定义消息?
TestNG 支持许多**断言**。它拥有**org.testng.Assert** 类,该类扩展了 Java 对象类**java.lang.object**。每当发生失败时,用户都希望获得自定义的失败消息,以便轻松进行根本原因分析。TestNG 支持带有自定义失败消息的断言。但是,消息完全是可选的。
**语法**如下:
Assert.<assertMethod>(expected, actual, message)
如果用户没有提供消息,TestNG 会打印默认错误消息;但如果用户设置了消息,则 TestNG 会抛出错误以及用户设置的自定义消息。
在本文中,我们将了解如何在 TestNG 失败时设置自定义消息。
解决此问题的方法/算法
**步骤 1** - 创建一个 TestNG 类,**NewTestngClass**。
**步骤 2** - 在类中编写三个不同的**@Test** 方法,以便在三个不同的断言中失败,如下面的编程代码部分所示。
**步骤 3** - 创建如下所示的**testNG.xml** 以运行 TestNG 类。
**步骤 4** - 最后,运行**testNG.xml** 或直接在 IDE 中运行 TestNG 类,或者使用命令行进行编译和运行。
示例
使用以下代码作为通用 TestNG 类,**NewTestngClass** -
src/ NewTestngClass.java
import org.testng.Assert; import org.testng.annotations.*; public class NewTestngClass { @Test public void test1() { System.out.println("Running test1"); int Id = 1; int newId = 2 ; Assert.assertEquals(Id, newId,"Assert equals validation between id and newId"); } @Test public void test2() { System.out.println("Running test2"); String Id = null; Assert.assertNotNull(Id, "Assert not null validation for Id is failed. Id is null"); } @Test public void test3() { System.out.println("Running test3"); Boolean Id = false; Assert.assertTrue(Id,"Assert True validation failed as Id is not set to true"); } }
testng.xml
这是一个配置文件,用于组织和运行 TestNG 测试用例。当需要执行有限的测试而不是完整的套件时,它非常方便。
<?xml version = "1.0" encoding = "UTF-8"?> <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" > <suite name = "Suite1"> <test name = "test1"> <classes> <class name = "NewTestngClass"/> </classes> </test> </suite>
输出
Running test1 java.lang.AssertionError: Assert equals validation between id and newId expected [2] but found [1] Expected :2 Actual :1 ......... Running test2 java.lang.AssertionError: Assert not null validation for Id is failed. Id is null expected object to not be null ............ Running test3 java.lang.AssertionError: Assert True validation failed as Id is not set to true expected [true] but found [false] Expected :true Actual :false ...........
广告