Добрый день.
Проблема в том что для выполнения тестов в нужном мне порядке я использовал дополнительный клас:
@RunWith(Suite.class)
@SuiteClasses({ Test1ExitWitchActivatePage.class, Test2ViewAListOfTheInformation.class, Test3Autorization.class })
public class TestSuite {
public static void main(String[] args) {
}
}
Соответственно имеются три тестовых класса с анотацией @Test.
Проблема в том что при выполнении команды mvn test выполняется два прогона тестов, как я понял мавен просто ищет анотации и запускает их.
Как сделать так чтобы запускался сугубо класс TestSuite, а тесты с анотацией @Test не запускались повторно?
Спасибо)
Есть вероятность, что ты решаешь проблему, которую специально выдумал. А именно:
зачем-то понадобилось запустить тесты в нужном порядке
для этого ты не стал использовать имеющиеся во фреймворке средства, а решил прибить сбоку ржавыми гвоздями своё решение
реализация работает не так как надо и ты ищешь решение именно этой проблемы, а не двух предыдущих
Для начала стоит понять почему возникла потребность запускать тесты в определенной последовательности. Зачастую это неверный ход и делать так не надо. Это считается bad practice. Стоит серьезно подумать и взвесить все за и против, прежде чем делать тесты зависимыми, понять причины, почему нужно именно так и почему нельзя по-другому.
Если по-другому нельзя и ты осознанно ступил на этот скользкий путь, то у JUnit есть готовые средства для этого, например, MethodSorters. Не подходит?
Потребность определенного порядка возникла, так как я решил разделить все стадии, отдельно авторизация, регистрация и прочее. И чтобы каждый раз не регистрировать приложение для прогона теста я решил сначала провести тесты для авторизации и регистрации продукта. Потом все остальные, так как функционал не доступен до момента регистрации. Конечно же я открыт к критике и предложениям:)
MethodSorters еще не разсматривал, сейчас буду гуглить, тот пример который я использывал это первое что удалось нагуглить.
MethodSorters может и не подойти. Как я понял. Он подходит для упорядочивания запуска тестов внутри класса. Тебе же скорее надо зависимость тестов по функционалу. Поищи в этом направлении - как в JUnit указать зависимость тестов
Вопрос решен, с помощью категорий в junit и плагинчика к мавену. Запускаются только тесты из категорий, дублирования запуска не наблюдается. Всем спасибо)