Java 使TestNG@Factory测试用例按照提供的顺序运行

Java 使TestNG@Factory测试用例按照提供的顺序运行,java,testng,Java,Testng,我有一些继承的TestNG代码,使用@Factory创建测试用例。一切正常。 然而,即使测试用例从@Factory方法返回时肯定是有序的,它们也不是按照那个顺序执行的。为了便于调试,我希望执行它们(如果开发人员将测试保持在一起,则比随机顺序更容易) 有没有一个简单的方法可以做到这一点 我正在使用TestNG 5.9,但如果需要可以升级 谢谢。我目前也在尝试这样做。我发现以下可能对你有帮助: 如果我能为我的问题找到某种解决方案,如果你愿意,我可以在这里添加一些代码 编辑 我正在检查2种Test

我有一些继承的TestNG代码,使用@Factory创建测试用例。一切正常。 然而,即使测试用例从@Factory方法返回时肯定是有序的,它们也不是按照那个顺序执行的。为了便于调试,我希望执行它们(如果开发人员将测试保持在一起,则比随机顺序更容易)

有没有一个简单的方法可以做到这一点

我正在使用TestNG 5.9,但如果需要可以升级


谢谢。

我目前也在尝试这样做。我发现以下可能对你有帮助:

如果我能为我的问题找到某种解决方案,如果你愿意,我可以在这里添加一些代码

编辑

我正在检查2种TestClass,它们应该按照TestNG所做的顺序1 2 1 2 2而不是1 1 2 2 2执行

public class ExampleInterceptor implements IMethodInterceptor {

@Override
public List<IMethodInstance> intercept(List<IMethodInstance> paramList, ITestContext paramITestContext) {

     //You have to watch out to get the right test if you have other tests in oyur suite        
    if (!paramITestContext.getName().equals("UnwantedTest")) {
        for (IMethodInstance iMethodInstance : paramList) {
            Object[] obj = iMethodInstance.getInstances();
            if (obj[0] instanceof Class1) {
                //DO your stuff like putting it in a list/array
            } else {
                //DO your stuff like putting it in a list/array with the other Testclasses
            }
        }
    }
    List<IMethodInstance> result = new ArrayList<IMethodInstance>();

            //Put the results in the results

    }
    return result;
}
公共类ExampleInterceptor实现IMethodInterceptor{
@凌驾
公共列表截取(列表参数列表、ITestContext参数上下文){
//如果您在oyur套件中有其他测试,您必须注意获得正确的测试
如果(!paramITestContext.getName().equals(“UnwantedTest”)){
对于(IMethodInstance IMethodInstance:paramList){
Object[]obj=iMethodInstance.getInstances();
if(类1的obj[0]实例){
//做你的事情,比如把它放在一个列表/数组中
}否则{
//做一些事情,比如把它和其他TestClass放在一个列表/数组中
}
}
}
列表结果=新建ArrayList();
//将结果放入结果中
}
返回结果;
}
}


希望有帮助。如果有问题,请提问。

是的,请回答!那太好了。我是在上面两个网站的帮助下完成的:-)我将在下周三回来工作时发布我的一些代码。谢谢。工作完美。事实上,对我来说更容易,只是创建了一个IMethodInterceptor来返回输入方法,即pass-through,但这本身就导致它按照创建测试的顺序处理测试。万岁!