如何告诉JUnit使用自己创建的自定义RunnerBuilder
实现?
使用自定义Runner
就像提供@RunWith
注释一样简单。我看不到如何告诉JUnit使用哪个RunnerBuilder
。
The example in the JavaDoc仍然没有显示如何指定RunnerBuilder
。
最佳答案
遵循@Duncan的建议,我没有理会RunnerBuilder
,而是选择让自己的Runner
实现自己进行注释查找。
在这种情况下,我有一个赛跑者委派给另一个赛跑者,由一个注释定义,并且还使用另一个注释定义应由其他类加载器加载的类。
跑步者:
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/