Лучшие практики по приоритезации тестов testng

Есть около 10 классов с тестами

Я попытался присвоить каждому тесту приоритет через priority
На это ушло около полу часа - час, что не есть хорошо.

есть ли способ динамически присваивать priority каждому тесту т.к. при добавленни нового теста в цепочку приоритетов нужно будет последующие тесты сдвигать на +1?

была идея создать класс, в котором список всех методов, в список добавлять название нового метода, и при каждом запуске мы бы получали по названию метода приоритет (порядковый номер элемента в списке)

@Test(testName = "open", suiteName = "smoke",  priority = TestPriorityHandler.getPriority("openLandingPage"))
public void openLandingPage(){
    open("/");
}

попытка не увенчалась успехом так как Attribute value must be constant

Как боротся с этим?

@alehandro - прежде чем бороться и искать опишите пожалуйста задачу вставки теста в середину с глобальным сдвигом ? нумерация разнве глобальная - думаю что в пределах класса только

Действительно, не совсем понятно чего вы хотите добиться, непонятно приоритизируете ли вы тестовые классы или тестовые методы

На вскидку, попробуйте dependsOn подходит для зависимых тест методов, в этом случае при вставке одного тестового метода, надо будет просто поменять две ссылки, в новом методе и следующем
Если у вас разбиение идет по классам, тест нг по умолчанию запускает тестовые классы в том порядке в котором указаны в xml файле(если не указано иное)

@sergueik сейчас идёт активная разработка тестов, и проблема в том, что по мене покрытия необходимо “внедрить” тесты уже в существующую очередь. Предлолагаю, что изначально был выбран неверный подход “автоматизируем важное (смоук) потом накидываем сверху”

@Mark_Gorbunov насколько я понимаю, приоритизация в testNg доступна только для тестовы методов, или я не прав?

да, но если есть 3 теста, в 2 классах и необходимо вызвать тест1 с класс1 → тест1 с класс2 → тест3 с класс1?

Так надо использовать группы , а не приоритеты.
Группа для смока, группа для функционала 1, группа для функционала 2 и т.п.

необходимо вызвать тест1 с класс1 → тест1 с класс2 → тест3 с класс1?

– это дичь. У вас неправильно распределены тесты по классам тогда.

1 лайк

Очень хороший подход, сначала самые важные тесты потом попроще.
Неясно что вы хотите этой приоретизацией, тесты должны быть атомарными и отдельно взятому тесту должно быть всеравно каким по счету его запустили.
Если задача стоит разбить тесты на очень-очень важные, важные, неочень важные и т.д то используйте группы, а не приоритеты