java – Junit外部资源@Rule Order

我想在我的测试类中使用多个外部资源,但是我对外部资源的排序有问题.

这是代码片段:

public class TestPigExternalResource {

     // hadoop external resource,this should start first
     @Rule
     public HadoopSingleNodeCluster cluster = new HadoopSingleNodeCluster();

     // pig external resourcem,this should wait until hadoop external resource starts
     @Rule
     public  PigExternalResource pigExternalResource = new PigExternalResource(); 

     ...  
}

问题是它尝试在hadoop启动之前启动猪,因此我无法连接本地hadoop单节点集群.

有没有办法订购junit规则?

谢谢

解决方法

你可以使用 RuleChain.
@Rule
public TestRule chain= RuleChain.outerRule(new HadoopSingleNodeCluster())
                           .around(new PigExternalResource());

相关文章

HashMap是Java中最常用的集合类框架,也是Java语言中非常典型...
在EffectiveJava中的第 36条中建议 用 EnumSet 替代位字段,...
介绍 注解是JDK1.5版本开始引入的一个特性,用于对代码进行说...
介绍 LinkedList同时实现了List接口和Deque接口,也就是说它...
介绍 TreeSet和TreeMap在Java里有着相同的实现,前者仅仅是对...
HashMap为什么线程不安全 put的不安全 由于多线程对HashMap进...