gpt4 book ai didi

java - 自定义 JUnit RunnerBuilder

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:01:30 25 4
gpt4 key购买 nike

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

使用自定义 Runner 就像提供 @RunWith 注释一样简单。不过,我看不出我该如何告诉 JUnit 使用哪个 RunnerBuilder

The example in the JavaDoc仍然没有显示如何指定 RunnerBuilder

最佳答案

按照@Duncan 的建议,我没有费心使用 RunnerBuilder,而是选择让我的 Runner 实现自己进行注解查找。

在这个例子中,我有一个运行器委托(delegate)给另一个运行器,由一个注释定义,并且还使用另一个注释来定义应该由不同类加载器加载的类。

运行者:

public QuarantiningRunner(Class<?> testFileClass) throws InitializationError
{
delegateRunningToDiscoverer = new DelegateRunningToDiscoverer();
quarantinedPatternDiscoverer = new QuarantinedPatternDiscoverer();
Class<? extends Runner> delegateRunningTo = delegateRunningToDiscoverer.getDelegateRunningToOn(testFileClass);
...

注解发现者之一:

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;
}
}

关于java - 自定义 JUnit RunnerBuilder,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28593971/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com