По сути это уже suite, так содержит в себе набор тестов, junit его и выполняет как suite. Но проблема в том, что в такой структуре неудобно разрабатывать и отлаживать отдельные тесты. То есть при запуске файла на исполнение прогоняются все тесты, а чтобы запустить какой-то один из них, остальные приходится комментировать.
Я хочу вынести все тесты в отдельные классы и каком-то образом запускать их из данного параметризированного класса.
При этом я не могу создать suite стандартным образом (аннотация @RunWith(Suite.class)) в в этом же классе, так как эта аннотация уже занята параметризацией.
Таким образом мне важно получить решение при котором я могла бы
1. запускать люблюй из тестов отдельно во время разработки данного теста
2. запускать все тесты из параметризированная класса как suite
проблема не в аннотациях а в правильном построении инфраструктуры тестового фреймворка аннотацию @RunWith(Suite.class) можна вынести в отдельный класс при этом все тести тоже по отдельным классам разбросать например MySuiteRunner.java
@RunWith(Suite.class) @SuiteClasses ({ классгдетести.class, Parameterized_Test.class, койтокласгде тести.class }) public class MySuiteRunner {
}
и параметризованый класс тоже отдельно
@RunWith(Parameterized.class) public class Parameterized_Test {
// step 2 // global vars String bankName; int actNum;
// step 3 // constructor public Parameterized_Test(String bankName , int actNum){ this.bankName=bankName; this.actNum=actNum; }
// step 4 @Parameters public static Collection<Object[]> getData(){
Object data[][] = new Object[2][2]; // first row data[0][0]="HSBC"; data[0][1]=1234;
Но при этом ведь сами тесты не будут параметризированными. Разве нет?
Кроме того вариант, в котором бы каждый отдельный тест наследовался от параметризированного класса, тоже не подходит. Так как в этом случае конструктор параметризированного класса будет вызываться каждый раз перед каждым тестом, а не перед набором тестов. А проблема это потому что в этом конструкторе производится некая подготовка праметров, которая занимает времени больше, чем каждый из тестов.
Поэтому мне нужно, чтоб эта подготовка, которая в конструкторе класса, выполнялась бы один раз перед всем набором тестов