Установка приоритета метода тестирования в TestNG XML

Вопрос: как установить приоритет метода в XML TestNG, а не добавлять его на уровне class.method с тегом приоритета?

Я пытался найти ответ на этот вопрос, но нигде не смог найти этот конкретный момент.

Вариант использования: я могу программно генерировать TestNG XML и вызывать методы тестирования на основе заданных имен методов, записанных во внешнем файле в качестве источника данных.


person Chirag Pandit    schedule 23.02.2018    source источник


Ответы (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

person Harish    schedule 23.02.2018
comment
Спасибо, Хариш, за руководство. Это в значительной степени сработало, пришлось снова прочитать набор данных, чтобы расставить приоритеты. Хорошего дня :) - person Chirag Pandit; 26.02.2018
comment
Крутая вещь. Хорошо знать :) - person Harish; 26.02.2018