Chirag Pandit
Chirag Pandit

Reputation: 43

Setting test method priority in TestNG XML

Question: How do I set method priority in TestNG XML rather than adding it at class.method level with priority tag?

I tried finding out answer for this but I was not able to find this specific point anywhere.

Use Case: I can generating TestNG XML Programatically and invoking test methods based on the given method names written in an external file as a datasource.

Upvotes: 0

Views: 1124

Answers (1)

Harish
Harish

Reputation: 1441

I think there is more than one way to do this. Using a listener that implements Annotation Transformer is one of them. You can do something like this:

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

You can read more about AnnotationTransformer in the official documentation: http://testng.org/doc/documentation-main.html#annotationtransformers

Upvotes: 2

Related Questions