@Listeners定义一个测试类的监听器
例子:监听Mathematics测试用例日志
第一步:新建Mathematics(要测试的类)
package com.test.modle
public class Mathematics {
public int getFactorial(int num){
int result = 0
if(num == 1){
result = num
}else {
result = getFactorial(num - 1)*num
}
return result
}
}
第二步:新建Test_L类继承TestListenerAdapter监听类(打印日志类)重写onStart、onTestStart、onTestSuccess、onTestFailure、onTestSkipped、onFinish方法
package com.test.test_modle;
import org.testng.ITestContext;
import org.testng.ITestResult;
import org.testng.TestListenerAdapter;
public class Test_L extends TestListenerAdapter {
@Override
public void onStart(ITestContext testContext) {
super.onStart(testContext);
System.out.println(String.format("%s项目测试开始",testContext.getName()));
}
@Override
public void onTestStart(ITestResult result) {
super.onTestStart(result);
System.out.println(String.format("%s测试用例开始",result.getInstanceName(),result.getName()));
}
@Override
public void onTestSuccess(ITestResult tr) {
super.onTestSuccess(tr);
System.out.println(String.format("%s.%s测试用例通过",tr.getInstanceName(),tr.getName()));
}
@Override
public void onTestFailure(ITestResult tr) {
super.onTestFailure(tr);
System.out.println(String.format("%s.%s测试用例失败,失败原因:\n%s",tr.getInstanceName(),
tr.getName(),tr.getThrowable()));
}
@Override
public void onTestSkipped(ITestResult tr) {
super.onTestSkipped(tr);
System.out.println(String.format("%s.%s跳过测试用例",tr.getInstanceName(),tr.getName()));
}
@Override
public void onFinish(ITestContext testContext) {
super.onFinish(testContext);
System.out.println(String.format("%s项目测试结束",testContext.getName()));
}
}
第三步:新建Test_L_one测试类,测试Mathematics并监听
com.test.test_modle.Test_L.class
package com.test.test_modle
import com.test.modle.Mathematics
import org.testng.Assert
import org.testng.annotations.Listeners
import org.testng.annotations.Test
@Listeners({com.test.test_modle.Test_L.class})
public class Test_L_one {
Mathematics mathematics = null
int num = 0
@Test
public void test_getFactorial_1(){
mathematics = new Mathematics()
num = mathematics.getFactorial(1)
Assert.assertEquals(num,1)
}
@Test
public void test_getFactorial_2(){
mathematics = new Mathematics()
num = mathematics.getFactorial(1)
Assert.assertEquals(num,6)
}
@Test(enabled = true) //是否跳过测试
public void test_getFactorial_3(){
mathematics = new Mathematics()
num = mathematics.getFactorial(2)
Assert.assertEquals(num,120)
throw new SkipException("不要测试")
}
}