2012-02-29 19 views
9

Me gustaría utilizar las características de Arquillian y PowerMock en la misma prueba JUnit 4.Usando Arquillian y PowerMock en la misma prueba JUnit

El problema es que ambos productos se Junit Runner s que deben utilizarse con @RunWith, y esto no es posible utilizar múltiples @RunWith en la misma clase de prueba, o para decirlo de clases múltiples Runner s en el mismo @RunWith anotación.

¿Conoces alguna forma de hacerlo?

+0

Gracias, he editado mi pregunta con el fin de ser más precisos. –

+0

Matthew, ¿puedes mirar mi problema http://stackoverflow.com/questions/30799352/how-to-use-powermock-with-arquillian –

Respuesta

12

Puede usar PowerMock sin usar el corredor si usa PowerMockRule (que es TestRule). Desde el PowerMockRule:

Desde la versión 1.4 es posible arrancar PowerMock utilizando una regla de JUnit lugar de utilizar el PowerMockRunner y la anotación RunWith. Esto le permite utilizar otros corredores JUnit mientras se beneficia de la funcionalidad de PowerMock. Esto se hace mediante la especificación:

@RunWith(Arquillian.class); 
public class MyTest { 
    @Rule 
    PowerMockRule rule = new PowerMockRule(); 

    // Tests goes here 
    ... 
} 

consulta las respuestas a Junit Parameterized tests together with Powermock - how? y el siguiente hilo en el grupo PowerMock Google: Using PowerMock without the RunWith?.

+1

@Mattew Farwell: Esto no funciona para mí. Obtengo: 'java.lang.IllegalStateException: PowerMockRule solo se puede usar con el cargador de clases del sistema pero fue cargado por ModuleClassLoader para el módulo" deployment.test.war: main "de Service Module Loader'. ¿Qué puedo hacer para usar Arquillian y PowerMock juntos? – badera

2

No, o hay que hacer:

  • un solo uso y crear una clase base de prueba que hace las cosas que quería el otro corredor que hacer.
  • separa tu prueba en múltiples pruebas, cada una usando diferentes corredores.
0

JUnit4 solo admite una anotación @RunWith, y la anotación @RunWith de JUnit4 no acepta varios corredores.

Referencia:project13

Cuestiones relacionadas