Timer 如何在一段时间内运行TestNG工厂测试?

Timer 如何在一段时间内运行TestNG工厂测试?,timer,testng,Timer,Testng,例如,我有一个方法createInstances为2个用户运行,然后我有一个main方法在一段时间内运行createInstances。但是,如果我运行main方法,它不会调用testNGTest()中的测试方法,而只是创建类并退出。有没有办法在一段时间内重复运行我的@Factory方法 public static void main(String[] args){ long startTime = System.currentTimeMillis(); long duratio

例如,我有一个方法createInstances为2个用户运行,然后我有一个main方法在一段时间内运行createInstances。但是,如果我运行main方法,它不会调用testNGTest()中的测试方法,而只是创建类并退出。有没有办法在一段时间内重复运行我的@Factory方法

public static void main(String[] args){
    long startTime = System.currentTimeMillis();
    long duration = 10000;
    Timer timer = new Timer();
    timer.schedule(new TimerTask() {

        @Override
        public void run() {
            if(System.currentTimeMillis()>=startTime+duration){
               timer.cancel();
            }
            createInstances();
        }
    },0,500);
}

@Factory
public static Object[] createInstances(){
    Object[] obj = new Object[2];
    String[] accounts = {"dsfcaleb02","dsfcaleb03"};

    //Use Time to loop for certain duration
    for (int iter = 0; iter < 2; iter++) {
        obj[iter] = new testNGLiveStreamSendGiftTest(accounts[iter]);
        System.out.println("User:"+accounts[iter]);
    }

    return obj;
}
publicstaticvoidmain(字符串[]args){
long startTime=System.currentTimeMillis();
长持续时间=10000;
定时器=新定时器();
timer.schedule(新TimerTask(){
@凌驾
公开募捐{
if(System.currentTimeMillis()>=开始时间+持续时间){
timer.cancel();
}
createInstances();
}
},0,500);
}
@工厂
公共静态对象[]createInstances(){
Object[]obj=新对象[2];
字符串[]帐户={“dsfcaleb02”,“dsfcaleb03”};
//使用时间循环一定的持续时间
对于(int-iter=0;iter<2;iter++){
obj[iter]=新的testnglivestreamsendgiftest(账户[iter]);
System.out.println(“用户:“+accounts[iter]);
}
返回obj;
}