Pregunta Junit Parameterized prueba junto con Powermock - ¿cómo?


He estado intentando descubrir cómo ejecutar pruebas parametrizadas en Junit4 junto con PowerMock. El problema es que para usar PowerMock necesitas decorar tu clase de prueba con

@RunWith(PowerMockRunner.class)

y para usar pruebas parametrizadas tienes que decorar con

@RunWith(Parameterized.class)

Por lo que puedo ver, parecen mutuamente excluidos? ¿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 desafortunadamente esto no hace mucho bien ... El ParamTestClass todavía no funciona con el soporte de PowerMock (no sorprendentemente tal vez) ... ¡Y me he quedado sin ideas así que cualquier ayuda es muy apreciada!

Actualizar: Para futuros googlers también ver: ¿Usando PowerMock sin RunWith?


32
2018-03-16 13:03


origen


Respuestas:


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)

18
2018-05-11 18:45



Sí esto funciona al usar el PowerMock Regla disponible si usas JUnit 4.7+.


14
2018-04-06 18:06



No puede utilizar dos corredores de clase a la vez, por lo que definitivamente tendrá que escribir su propio corredor de prueba para que eso 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
2018-03-16 13:38