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

Я пытался выяснить, как запустить параметризованные тесты в 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?

40
задан Andrii Abramov 9 June 2017 в 10:59
поделиться

2 ответа

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

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

0
ответ дан 27 November 2019 в 01:53
поделиться

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

15
ответ дан 27 November 2019 в 01:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: