在TestNG XML中设置测试方法优先级

时间:2018-02-23 04:22:27

标签: java unit-testing selenium-webdriver testng testng-eclipse

问题:如何在TestNG XML 中设置方法优先级,而不是在class.method级别添加优先级标记?

我尝试找到答案,但我无法在任何地方找到这个具体点。

用例:我可以以编程方式生成TestNG XML并调用测试  基于给定方法名称的方法在外部文件中写为数据源。

1 个答案:

答案 0 :(得分:1)

我认为这样做的方法不止一种。使用实现Annotation Transformer的侦听器就是其中之一。你可以这样做:

public class SetPriorityListener implements IAnnotationTransformer {

    @Override
    public void transform(final ITestAnnotation annotation, final Class testClass,
        final Constructor constructor, final Method method) {
        if ("myTestName".equals(method.getName())) {
            annotation.setPriority(getTestPriority());
        }
    }

    private int getTestPriority() {
        //logic to get priority for this test
        return 0;
    }
}

您可以在官方文档中阅读有关AnnotationTransformer的更多信息:http://testng.org/doc/documentation-main.html#annotationtransformers