我想在测试类中使用多个外部资源,但是外部资源的排序存在问题。
这是代码片段:
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());