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 が機能しない理由がわかりません。何も返されません。コードの内部に入りましたが、わかりませんでした。どんな手掛かり?