Java 自定义JUnit RunnerBuilder

Java 自定义JUnit RunnerBuilder,java,junit,Java,Junit,我如何告诉JUnit使用我自己创建的自定义RunnerBuilder实现 使用自定义的Runner与提供@RunWith注释一样简单。我不知道接下来我该如何告诉JUnit使用哪个RunnerBuilder 仍然没有显示如何指定RunnerBuilder 根据@Duncan的建议,我没有使用RunnerBuilder,而是选择让我的Runner实现本身进行注释查找 在本例中,我让一个运行者委托给另一个运行者,由注释定义,并使用另一个注释来定义应该由其他类加载器加载的类 跑步者: public Qu

我如何告诉JUnit使用我自己创建的自定义
RunnerBuilder
实现

使用自定义的
Runner
与提供
@RunWith
注释一样简单。我不知道接下来我该如何告诉JUnit使用哪个
RunnerBuilder


仍然没有显示如何指定
RunnerBuilder

根据@Duncan的建议,我没有使用
RunnerBuilder
,而是选择让我的
Runner
实现本身进行注释查找

在本例中,我让一个运行者委托给另一个运行者,由注释定义,并使用另一个注释来定义应该由其他类加载器加载的类

跑步者:

public QuarantiningRunner(Class<?> testFileClass) throws InitializationError
{
    delegateRunningToDiscoverer = new DelegateRunningToDiscoverer();
    quarantinedPatternDiscoverer = new QuarantinedPatternDiscoverer();
    Class<? extends Runner> delegateRunningTo = delegateRunningToDiscoverer.getDelegateRunningToOn(testFileClass);
    ...
公共隔离运行程序(类testFileClass)引发初始化错误
{
DelegateRunningToDiscover=新的DelegateRunningToDiscover();
QuarantinedPatternDiscoveryr=新的QuarantinedPatternDiscoveryr();

类文档中说“一个自定义运行器类,其构造函数采用RunnerBuilder参数,将传递给RunnerBuilder实例”。它的创建方式属于“实现详细信息”类别,您不必担心JUnit不知道要通过哪个RunnerBuilder吗?查看源代码,我能看到的都是JUnit默认RunnerBuilders。@Deejay作为备份计划,您可以随时忽略提供的
RunnerBuilder
,并在
Runner
@Duncan中使用您自己的
Runner
@Duncan-您想将其列为答案,以便你的功劳?这正是我最后所做的。@Deejay如果你写出答案,并给出一些示例代码片段,可能会更好。
public class DelegateRunningToDiscoverer
{
    public Class<? extends Runner> getDelegateRunningToOn(Class<?> testClass)
    {
        Class<? extends Runner> runnerClass = BlockJUnit4ClassRunner.class;
        DelegateRunningTo annotation = testClass.getAnnotation(DelegateRunningTo.class);

        if(annotation != null)
        {
            runnerClass = annotation.value();
        }

        return runnerClass;
    }
}