Использую java, Selenium Web driver, jUnit4, Allure
Мне тестами необходимо вызывать один и тот же метод. У метода есть к примеру 4 параметра.
Для простоты понимая будем считать что типы параметров булево.
Мне необходимо выполнить тесты в разрезе всех возможных комбинаций этих параметров.
На данный момент на фирме где я работаю создаются на каждую комбинацию отдельный тест.
Минус такого подхода заключается в том, что очень легко запутаться, тяжело определить, все ли комбинации используются и т д.
Есть задумка немного прикрутить jUnit тесты: создать List, и выполнять тесты в цикле. При этом каждый тест должен выглядеть по всем отчетам как отдельный. Из минусов такого подхода вижу сложность, что невозможно будет вручную тестировать тест по определенной комбинации параметров.
Возможно кто-то сталкивался с подобной задачей, и посоветует, как лучше её решить?
p.s. Простите, если неточно описал проблему(я новичёк в java)
Добрый вечер! Попробовал понять что умеют параметризированные тесты. В целом все проблемы вроде бы решаемые, кроме одной: запуск одного теста в IDEA
Сначала попробовал использовать вариант который посоветовал arturk. Результат неплохой, единственное что – не понравилось 3-хуровневое дерево тестов. На первом уровне runner с названием класса, на втором уровне runners с названием теста и вариации теста, и на третьем уровне тест. Т.е. грубо говоря 2-й и 3-й уровень повторяются
Итого вывод к которому я пришёл(если он ошибочный, с радостью выслушаю критику): неважно, testNG или jUnit. Из IDEA при нажатии на тест вызываются классы jUnit из чёрного ящика, и отладить или переделать их логику невозможно. Для того чтобы при нажатии правой кнопкой мыши на тест была кнопочка с запуском теста, необходимо чтобы представление этого теста было по шаблону: testName и дальше можно в квадратных скобках писать любые вещи. К примеру: myTest[А парам1=10, парам2=20]. Дальше, IDEA пытается отфильтровать тест по description. Для этого она берет название текущего runner и сопоставляет со всеми возможными runner.
Итого, для того чтобы запустить одиночный тест, необходимо для каждого теста заводить свой runner (что выглядит не так красиво, как если создавать тесты отдельно)