Custom Logging
优质
小牛编辑
131浏览
2023-12-01
我们之前读过有关TestNG为日志记录和报告提供的不同选项。 现在,让我们学习如何开始使用它们。 首先,我们将编写一个示例程序,我们将使用ITestListener接口进行记录。
创建测试用例类 (Create Test Case Class)
在C:\》 TestNG_WORKSPACE创建一个java类,比如SampleTest.java 。
import org.testng.Assert;
import org.testng.annotations.Test;
public class SampleTest {
@Test
public void testMethodOne() {
Assert.assertTrue(true);
}
@Test
public void testMethodTwo() {
Assert.assertTrue(false);
}
@Test(dependsOnMethods={"testMethodTwo"})
public void testMethodThree() {
Assert.assertTrue(true);
}
}
前面的测试类包含三个测试方法, testMethodOne和testMethodThree将在执行时传递,而testMethodTwo通过将false布尔值传递给Assert.assertTrue方法而失败,该方法用于测试中的真值条件。
创建自定义日志记录类
在C:\》 TestNG_WORKSPACE创建另一个名为CustomListener.java新类。
import org.testng.ITestResult;
import org.testng.TestListenerAdapter;
public class CustomListener extends TestListenerAdapter{
private int m_count = 0;
@Override
public void onTestFailure(ITestResult tr) {
log(tr.getName()+ "--Test method failed\n");
}
@Override
public void onTestSkipped(ITestResult tr) {
log(tr.getName()+ "--Test method skipped\n");
}
@Override
public void onTestSuccess(ITestResult tr) {
log(tr.getName()+ "--Test method success\n");
}
private void log(String string) {
System.out.print(string);
if (++m_count % 40 == 0) {
System.out.println("");
}
}
}
上面的类扩展了TestListenerAdapter ,它使用空方法实现ITestListener 。 因此,无需从接口覆盖其他方法。 如果您愿意,可以直接实现界面。
Create testng.xml
在C:\》 TestNG_WORKSPACE创建testng.xml以执行测试用例。
<?xml version = "1.0" encoding = "UTF-8"?>
<suite name = "Simple Logger Suite">
<listeners>
<listener class-name = "CustomListener" />
</listeners>
<test name = "Simple Logger test">
<classes>
<class name = "SampleTest" />
</classes>
</test>
</suite>
使用javac编译SampleTest,CustomListener类。
C:\TestNG_WORKSPACE>javac CustomListener.java SampleTest.java
现在,运行testng.xml。
C:\TestNG_WORKSPACE>java -cp "C:\TestNG_WORKSPACE" org.testng.TestNG testng.xml
验证输出。
testMethodOne--Test method success
testMethodTwo--Test method failed
testMethodThree--Test method skipped
===============================================
Simple Logger Suite
Total tests run: 3, Failures: 1, Skips: 1
===============================================
我们创建了一个自定义记录器类,它实现了ITestListener接口,并将自己作为监听器附加到TestNG测试套件。 TestNG在测试开始时,测试失败时,测试成功时调用此侦听器类的方法,依此类推。 可以实现多个侦听器并将其添加到测试套件执行中,TestNG将调用附加到测试套件的所有侦听器。
当我们需要在测试执行时看到测试执行的连续状态时,主要使用日志监听器。