testng中动态添加注解

最近看了下testng,的确发觉testng是强大的工具,其中留意到testng中有一个
不错的功能,是在运行时期动态添加注解,先来看下面的例子:


public class Mytest {
@Test(invocationCount = 10)
public void verify() {
// ...
}}


这个是固定了10次的重复测试,但如果要在程序中动态去判断呢,可以实现
IAnnotationTransformer接口


public interface IAnnotationTransformer {
public void transform(ITest annotation, Class testClass,
Constructor testConstructor, Method testMethod);
}



编写自定义类去实现它:

public class MyTransformer implements IAnnotationTransformer {
public void transform(ITest annotation, Class testClass,
Constructor testConstructor, Method testMethod)
{
if ("verify".equals(testMethod.getName())) {
annotation.setInvocationCount(15);
}
}
}

很明显,IAnnotationTransformer接口中,给出了注解,类,构造函数,测试方法四个参数,因此已经足够可以判断进行动态了。再看一个例子:




public class MyTransferTest {
@Test
public void test1() {
System.out.println("=================test1=============");
}



@Test
public void test2() {
System.out.println("=================test2=============");
}

}


public class MyTransformer implements IAnnotationTransformer {


@SuppressWarnings("rawtypes")
@Override
public void transform(ITestAnnotation annotation, Class testClass,
Constructor testConstructor, Method testMethod) {
System.out.println(" MyTransformer "+testMethod);
if ("test1".equals(testMethod.getName())) {
annotation.setInvocationCount(5);
}

}

}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值