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

这是代码片段:

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启动之前启动Pig,因此无法连接本地hadoop单节点集群。

有什么方法可以订购junit的规则吗?

谢谢

最佳答案

您可以使用RuleChain

@Rule
public TestRule chain= RuleChain.outerRule(new HadoopSingleNodeCluster())
                           .around(new PigExternalResource());

09-28 14:03