自定义JUnit Runner,它委托给标准的跑步者

时间:2018-03-25 09:29:55

标签: junit4 junit-runner

我目前正在创建一个单元自定义JUnit运行器(它将在每个测试方法之前/之后精确调用自定义代码),例如。

class MyRunner extends BlockJUnit4ClassRunner {

    private MyApi api = new MyApi();

    public MyRunner(Class<?> klass) throws InitializationError {
        super(klass);
    }

    // todo

}

但是,我想支持其他参赛者,例如MockitoJunitRunnerSpringRunner,所以我不想重新发明轮子,而是像以下一样使用我的跑步者(使用自定义MyConfig注释来指定现有的测试跑步者): -

@RunWith(MyRunner.class)
@MyConfig(testRunner=MockitoJUnitRunner.class)
public class MockitoRunnerTest {

}

......或......

@RunWith(MyRunner.class)
@MyConfig(testRunner=SpringRunner.class)
public class MockitoRunnerTest {

}

这意味着测试运行器非常轻,即它类似于Junit规则,只需在调用它自己的代码后代理另一个现有的Junit运行器。

我的直觉是,这已经被实施/解决 - 只是在找到它时遇到了问题。

  

注意:我希望避免因这些问题而使用规则 - 请参阅Apply '@Rule' after each '@Test' and before each '@After' in JUnit

0 个答案:

没有答案