Параметризованные тесты Junit совместно с Powermock - как?

StackOverflow https://stackoverflow.com/questions/2454473

Вопрос

Я пытался выяснить, как запускать параметризованные тесты в Junit4 вместе с PowerMock.Проблема в том, что для использования PowerMock вам нужно украсить свой тестовый класс

@RunWith(PowerMockRunner.class)

и чтобы использовать параметризованные тесты, вы должны украсить

@RunWith(Parameterized.class)

Из того, что я вижу, они кажутся взаимоисключающими!?Это правда?Есть ли какой-нибудь способ обойти это?Я попытался создать параметризованный класс внутри класса, работающего с PowerMock;что- то вроде этого:

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

Но, к сожалению, от этого мало толку...В ParamTestClass по-прежнему не работает с поддержкой PowerMock (возможно, это неудивительно)...И у меня вроде как закончились идеи, так что я очень ценю любую помощь!

Обновить: Для будущих пользователей Google также см.: Используете PowerMock без RunWith?

Это было полезно?

Решение

У меня была такая же проблема.К сожалению, это не позволило бы мне использовать правило PowerMock из-за JVM, которая у меня была.Вместо правила я использовал RunnerDelegate.

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

Другие советы

Да, это работает с помощью PowerMock Правило доступно, если вы используете JUnit 4.7+.

Вы не можете использовать два прогона класса одновременно, поэтому вам определенно придется написать свой собственный тестовый прогон, чтобы это произошло.

Я ничего не знаю о Powermock, но после 10 секунд исследований, похоже, что одним из решений было бы написать тестовый модуль, который использует загрузчик классов powermock и запускает параметризованные тесты.Если вы можете выяснить, как делегировать параметризованному тестовому исполнителю из вашего пользовательского тестового запуска, это может быть вашим лучшим выбором.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top