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

时间:2012-04-12 15:56:30

标签: java testng

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

有一种简单的方法吗?

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

感谢。

1 个答案:

答案 0 :(得分:2)

我目前正在努力做同样的事情。我发现以下可能对你有帮助:

http://beust.com/weblog2/archives/000479.html

http://testng.org/doc/documentation-main.html#methodinterceptors

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

修改

我正在检查2种TestClasses应该按照1 2 1 2 1 2而不是1 1 1 2 2 2的顺序执行,如TestNG所做的那样

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;
}

}

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