2010-03-16 15 views
30

He estado intentando averiguar cómo ejecutar pruebas parametrizadas en Junit4 junto con PowerMock. El problema es que para utilizar PowerMock lo necesario para decorar su clase de prueba conJunit Pruebas parametrizadas junto con Powermock: ¿cómo?

@RunWith(PowerMockRunner.class) 

y utilizar pruebas con parámetros tienes que decorar con

@RunWith(Parameterized.class) 

Por lo que puedo ver que parecen excluirse mutuamente !? ¿Es esto cierto? ¿Hay alguna forma de evitar esto? Intenté crear una clase parametrizada dentro de una clase que se ejecuta con PowerMock; algo como esto:

@RunWith(PowerMockRunner.class) 
class MyTestClass { 
    @RunWith(Parameterized.class) 
    class ParamTestClass { 
      // Yadayada 
    } 
} 

Pero, por desgracia, esto no sirve de mucho ... El ParamTestClass todavía no se ejecuta con el apoyo PowerMock (no es que tal vez sorprendentemente) ... Y he tipo de Ejecución a cabo de ideas así que cualquier ayuda es muy apreciada!

Actualización: Para los futuros empleados también les vea: Using PowerMock without the RunWith?

Respuesta

0

No es posible utilizar dos corredores de clase a la vez, por lo que sin duda tendrá que escribir su propio corredor de prueba para que esto suceda.

No sé nada de Powermock, pero después de 10 segundos de investigación, parece que una solución sería escribir un corrector de prueba que use el cargador de clases powermock y ejecute pruebas parametrizadas. Si puede averiguar cómo delegar al corredor de prueba parametrizado desde su corredor de prueba personalizado, esa podría ser su mejor opción.

+0

Gracias por su sugerencia. Echaré un vistazo al cargador de clases de powermock. –

14

Sí, esto funciona utilizando el PowerMock Rule disponible si usa JUnit 4.7+.

16

Tuve el mismo problema. Lamentablemente, no me permitió usar una regla de PowerMock debido a la JVM que tenía. En lugar de la regla, utilicé RunnerDelegate.

@RunWith(PowerMockRunner.class) 
@PowerMockRunnerDelegate(Parameterized.class) 
+0

Tenía el mismo problema de JVM, esta solución funcionaba como un encanto. ¡Aclamaciones! –

Cuestiones relacionadas