2013-11-30 2 views
2

Основная проблема заключается в том, что когда я группирую тесты JUnit в наборах или наборах наборов, метод всех тестов выполняется перед отдельными наборами или тесты выполняются. Наша настройка такова:Параметры параметров JUnit для всех тестов, выполняемых сначала в наборе, а не перед каждым тестом

У нас есть несколько файлов тестовых классов, каждый из которых имеет статические внутренние классы с фактическими тестами.

@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, метод всех внутренних классов вызывается сначала по всему набору/наборам до любого из методов @BeforeClass или реальных методов тестирования.

Мои вопросы:

  1. Является ли это ожидаемое поведение?

  2. Как я могу запустить его так, чтобы метод отдельных внутренних классов запускался непосредственно перед его собственными тестами, а не вместе в начале набора?

С учетом текущего поведения я рискую быстро подавить свои системные ресурсы, поскольку все вещи загружаются вместе.

+0

Эта установка очень необычна. Я бы посоветовал более нормальную установку и посмотрел, как там себя ведут. Что касается метода Parameters, который работает до BeforeClass, в этом случае я думаю, что это будет поведение, которое я ожидаю. –

+0

@baba Не могли бы вы пояснить, что вы подразумеваете под более обычной настройкой ...? или почему такая установка необычна ...? – anishthecoder

+0

Кто-нибудь ....? любые дальнейшие подсказки ...? – anishthecoder

ответ

0

@Parameterized всегда будет работать первым, еще до @BeforeClass

Вы не должны использовать статические классы и внутренние классы для ваших тестов, я бы использовал классы проводить подобные тесты и @Cetegories для выбора групп

+0

Верно, мне не нужно использовать статические внутренние классы. Тем не менее, моя проблема заключается в том, что я организую тесты и комплекты, ВСЕ, '@ Parameterized', запускаются сначала по всему набору/наборам. Мне действительно нужно, чтобы он запускался для одного тестового класса за раз ... – anishthecoder

 Смежные вопросы

  • Нет связанных вопросов^_^