Существует простой (хотя и хакерский) обходной путь для этого, если вам удобен ваш первый подход:
Сначала мы просто помещаем тесты, которые принадлежат друг к другу, в один класс, и используем для создания метода меткиони бегут в правильном порядке.Раньше это работало в TestNG V5, но в V6 TestNG иногда будет чередовать тесты из разных классов (при соблюдении порядка, на который навязаны зависимостиOnMethods).Кажется, нет способа сказать TestNG «Всегда запускать тесты из одного класса».
У нас была похожая проблема: нам нужно, чтобы наши тесты выполнялись по классам, потому что мы не моглиt гарантировать, что тестовые классы не мешают друг другу.
Вот что мы сделали: Поместите
@Test( dependsOnGroups= { "dummyGroupToMakeTestNGTreatThisAsDependentClass" } )
Аннотация в Абстрактный класс тестирования или интерфейс, от которого наследуются все ваши тесты.Это поместит все ваши методы в «первую группу» (группа, как описано в этом параграфе , а не TestNG-groups).Внутри групп порядок в классе.Благодаря Седрику Беусту, он предоставил очень быстрый ответ для этого .
Редактировать: Группа dummyGroupToMakeTestNGTreatThisAsDependentClass
фактически должна существовать, но вы можете просто добавить для этого фиктивный тестовый набор..