Я хочу создать 2 JUnit TestSuites. Они оба используют одни и те же классы тестов, но каждый из них должен использовать разные параметры. Например, в наборе тестов A я хочу, чтобы мои данные собирались из файла A и записывались в базу данных A. В тестовом наборе B я хочу, чтобы мои данные собирались из файла B и записывались в базу данныхB.Параметры передачи для теста JUnit из класса TestSuite
Причины я использую тесты во для этого, потому что:
- Я могу поставить все специфические параметры в Тестах классах
- можно повторно использовать testclasses
- я могу выбрать, который Тесты для запуска. Я не хочу, чтобы все тесты всегда запускались со всеми возможными параметрами!
Проблема в том, что я не могу передать параметры. Я понимаю, как класс Parameterized работает с JUnit, но он не допускает точку 3 в списке выше. Если я воспользуюсь приведенным ниже кодом, он будет запускать мой тестовый класс с использованием обоих соединений данных, что не является тем, чего я хочу достичь.
@RunWith(value = Parameterized.class)
public class TestCheckData
{
private File file;
private DatabaseSource databaseSource;
public TestCheckData(File file, DatabaseSource databaseSource)
{
this.file = file;
this.databaseSource = databaseSource;
}
@Parameters
public static Iterable<Object[]> data1()
{
return Arrays.asList(new Object[][]
{
{ TestSuiteA.DATA_FILE_A, TestSuite1.DATABASE_A },
{ TestSuiteB.DATA_FILE_B, TestSuite1.DATABASE_B }
});
}
Я уже нашел способ передачи конфигураций в весеннем контексте in this question, но я не использую никаких специальные рамки.
Это грязная, но она работала :) – user1884155