2013-10-15 7 views
1

У меня возникла проблема с запуском PowerMock с @Runwith (Enclosed.class) в pararell.Запуск PowerMock с закрытым классом

Моя структура теста класс:

@RunWith(PowerMockRunner.class) 
@PrepareForTest(UnitBuild.class) 

public class ut_QueueBuild{ 

    @Test 
    public void someTest(){} 

    public static InnerTestClass{ 

     @Test 
     public void someInnerTest(){} 
    } 

} 

Перед использованием powerMock я использовал:

@RunWith(Enclosed.class) 
public class unitTestClass { 
... 

Но так как я использую PowerMock нет возможности использовать в pararell @Runwith (PowerMockRunner. класс) и @Runwith (Enclosed.class)

Как это решить?

Большое спасибо!

ответ

0

JUnit4 поддерживает только одну аннотацию @RunWith, а аннотация @RunWith от JUnit4 не принимает несколько бегунов. Reference: project13

Возможный дубликат вопрос, но вот ответ от этого StackOverflow Question @Matthew Farwell

Нет, вам необходимо либо:

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

1

На самом деле вы можете использовать PowerMockRunnerDelegate и сделать:

@RunWith(PowerMockRunner.class) 
@PowerMockRunnerDelegate(Enclosed.class) 
@PrepareForTest(MyStaticClass.class) 
public class ut_QueueBuild{ 

    @Test 
    public void someTest(){} 

    public static InnerTestClass{ 

     @Test 
     public void someInnerTest(){} 
    } 

} 

Это относится и к другим бегунам, как Parametrized.

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