我正在尝试使用 MRUnit 1.1.0 测试一些 MapReduce,但出现此错误:
14/10/13 14:19:49 ERROR mrunit.TestDriver: Missing expected outputs for namedOutput 'a'
14/10/13 14:19:49 ERROR mrunit.TestDriver: Missing expected output (b, a) for namedOutput 'a' at position 0.
14/10/13 14:19:49 ERROR mrunit.TestDriver: Expected no pathOutputs; got 1 pathOutputs.
14/10/13 14:19:49 ERROR mrunit.TestDriver: Received unexpected output (b, a) for unexpected PathOutput 'a'
我执行的代码是:
mapTextDriver.withInput(new LongWritable(1), new Text(content));
mapTextDriver.withMultiOutput("a", "b", "a");
mapTextDriver.runTest();
我正在阅读 JIRA https://issues.apache.org/jira/browse/MRUNIT-13他们将新功能添加到 MRUnit 但我不知道我错过了什么..
我还包括注释:
@RunWith(..)
@PrepareForTest(..)
我继续检查代码和调试并修复。问题是我在 Mapper 中的书写方式。我正在使用 mop.write(K,V,baseOutput) 实例 mop.write(NameFile, K, V),现在它正在使用
mapTextDriver.runTest();
但我真的觉得更舒服
List<Pair<NullWritable, Text>> outputs = mapTextDriver.run();
我不知道为什么它不能以这种方式工作 MRUnit,它什么也不返回。我进入了代码内部,但没有得到它。有什么线索吗?