我创建了一个小示例来了解如何使用 MRUnit 来测试 MapReduce 代码。我正在尝试运行的示例是 wordcount,所以我不会在此处粘贴代码,因为它对所有人都很熟悉。
我已经使用 JUnit 编写了测试。令我困惑的是,测试的成功取决于列出输出值的顺序。
例如,此测试通过:
mapDriver.withInput(new LongWritable(), new Text("Hadoop is cool"))
.withOutput(new Text("Hadoop"), new IntWritable(1))
.withOutput(new Text("is"), new IntWritable(1))
.withOutput(new Text("cool"), new IntWritable(1))
.runTest();
但是这个不
mapDriver.withInput(new LongWritable(), new Text("Hadoop is cool"))
.withOutput(new Text("Hadoop"), new IntWritable(1))
.withOutput(new Text("cool"), new IntWritable(1))
.withOutput(new Text("is"), new IntWritable(1))
.runTest();
这不是我所期望的行为。
这是 MRUnit 中的错误,还是有这种行为的原因?