Основная проблема заключается в том, что когда я группирую тесты JUnit в наборы или наборы наборов, метод @Parameters
всех тестов запускается первым, прежде чем будут выполнены отдельные наборы или тесты. Наша установка выглядит следующим образом:
У нас есть несколько файлов тестовых классов, каждый из которых имеет статические внутренние классы с фактическими тестами.
@RunWith(Suite.class)
@SuiteClasses({
SubTestSuite01.TestSet01.class,
SubTestSuite01.TestSet02.class})
public class SubTestSuite01 {
public static class TestSet01{
public TestSet01(){}
@Parameters public static Collection<Object[]> data(){}
@Test public void test01(){}
@Test public void test02(){}
}
public static class TestSet02{
public TestSet02(){}
@Parameters public static Collection<Object[]> data(){}
@Test public void test01(){}
@Test public void test02(){}
}
}
И так далее для SubTestSuite02
, SubTestSuite03
и т. Д. Теперь, чтобы собрать все эти наборы тестов в большую коллекцию, я создал более крупный набор тестов, как показано ниже:
@RunWith(Suite.class)
@SuiteClasses({SubTestSuite01.class, SubTestSuite02.class,SubTestSuite03.class})
public class AllTests{}
Однако независимо от того, использую ли я главный набор AllTests
или SubTestSuite
, метод @Parameters
всех внутренних классов вызывается первым во всем наборе / наборах перед любыми @BeforeClass
методами или фактическими методами тестирования.
Мои вопросы:
Это ожидаемое поведение?
Как я могу заставить его работать так, чтобы метод
@Parameters
отдельных внутренних классов выполнялся непосредственно перед выполнением собственных тестов, а не вместе в начале набора?
При текущем поведении я рискую быстро перегрузить мои системные ресурсы, поскольку разные вещи загружаются вместе.