MRUnit - 测试成功取决于输出顺序

时间:2015-10-28 16:12:59

标签: unit-testing hadoop testing mapreduce mrunit

我创建了一个小例子来弄清楚如何使用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中的错误,还是有这种行为的原因?

0 个答案:

没有答案