В настоящее время я создаю модуль пользовательского запуска JUnit (который будет точно вызывать пользовательский код до/после каждого метода тестирования), например.
class MyRunner extends BlockJUnit4ClassRunner {
private MyApi api = new MyApi();
public MyRunner(Class<?> klass) throws InitializationError {
super(klass);
}
// todo
}
Тем не менее, я хотел бы поддержать других бегунов, например. MockitoJunitRunner
и SpringRunner
, поэтому вместо того, чтобы заново изобретать колесо, я хотел бы использовать свой бегун следующим образом (используя пользовательскую аннотацию MyConfig
для указания существующих тестовых бегунов): -
@RunWith(MyRunner.class)
@MyConfig(testRunner=MockitoJUnitRunner.class)
public class MockitoRunnerTest {
}
... or ...
@RunWith(MyRunner.class)
@MyConfig(testRunner=SpringRunner.class)
public class MockitoRunnerTest {
}
Это означает, что средство запуска тестов очень легкое, то есть оно похоже на правило Junit и просто проксирует другое существующее средство запуска Junit после вызова его собственного кода.
Я чувствую, что это уже реализовано/решено - просто есть проблемы с его поиском.
ПРИМЕЧАНИЕ. Я хочу избежать использования правил из-за этих проблем — см. Применить '@Rule' после каждого '@Test' и перед каждым '@After' в JUnit
@Before
(и создание этого методаsetup
, если он не существует) а также вызов кода внутри метода@After
(а также создание этого методаtearDown
, если он не существует). На самом деле ищу более СУХОЕ решение, но согласен, что делегирование другому существующему (более авторитетному) бегуну, такому какSpringRunner
, тоже не идеально. Попытка вызвать API этого проекта с открытым исходным кодом — github.com/videofirst/vft-capture - person bobmarksie   schedule 25.03.2018