MRUnitMapReduce单元测试框架
MRUnit是由Couldera公司开发的专门针对 Hadoop中编写MapReduce单元测试的框架,基本原理是JUnit4和 EasyMock。MR就是Map和Reduce的缩写。MRUnit框架非常精简,其核心的单元测试依赖于JUnit。而且MRUnit实现了一套 Mock对象来控制OutputCollector的操作,从而可以拦截OutputCollector的输出,和我们的期望结果进行比较,达到自动断言 的目的。
有了MRUnit,对MR程序做重构的时候,只要明确输入和输出,就可以写出单元测试,并且在放到群集校验前进行试验,从而节省时间和资源,也 能更快的定位到问题。而进行重构的话,只要写得足够详细的单元测试都是绿色的话,那么基本就可以保证在群集运行的结果也是正常的。
MRUnit不在Apache标准的Hadoop的发行版中,而是在Couldera公司的增强版本中hadoop- 0.20.1+133.tar.gz的contrib\mrunit\hadoop-0.20.1+169.56-mrunit.jar,已经贴在附件 中。只要把它和Junit4的jar添加到Hadoop程序项目的classpath中,就可以使用MRUnit了。
MRUnit包含四种 Driver:MapDriver,ReduceDriver,MapReduceDriver,PipelineMapReduceDriver。可以 根据自己的需要选择合适的Driver。
给出一个Reduce的很简单例子,Reduce的逻辑就是把Value中的各个值相加。
public class ExtractKeywordTest {private Reducer<Text, Text, Text, Text> reducer;private ReduceDriver<Text, Text, Text, Text> reduceDriver;@Beforepublic void setUp() throws Exception {reducer = new ExtractKeywordAcookie.Reduce();reduceDriver = new ReduceDriver<Text, Text, Text, Text>(reducer);}@Testpublic void testReduce() {List<Text> values = new ArrayList<Text>();values.add(new Text(1.0_0.1));values.add(new Text(2.0_0.2));values.add(new Text(3.0_0.3));reduceDriver.withInput(new Text(20100106_00_IBM), values).withOutput(new Text(20100106_00_IBM_6.00_0.60_), null).runTest();}
评论
QUnitjQuery 单元测试框架
QUnit是一个功能强大、易于使用的JavaScript单元测试框架。它被jQuery项目用于测试代码和插件,它能够测试任何通用的JavaScript代码(甚至能够在服务器端测试JavaScript代
QUnitjQuery 单元测试框架
0
xUnit.net.NET单元测试框架
NUnit 的创造者JimNewkirk公布了一个新的单元测试框架,叫做xUnit.net。这个以NUnit接班人自许的新框架打算消除NUnit的错误和缺点,并打算在框架中加入一些最佳实践和扩展能力。
xUnit.net.NET单元测试框架
0
PyUnitPython 单元测试框架
PyUnit是Python版JUnit,一款Python单元测试框架。PyUnit可以在Python1.5.2及更高版本上运行。作者已经在Linux(Redhat6.0和6.1以及DebianPota
PyUnitPython 单元测试框架
0
zMMIXMMIX单元测试框架
zMMIX是一个MMIX单元测试框架:用于测试TAOCP里面的MMIX程序特点:简单的case编写。用户不再需要自己编写:Main代码去运行、查看一段MMIX程序的运行结果。测试数据驱动。用户主要关心
zMMIXMMIX单元测试框架
0
JUnitJava单元测试框架
JUnit是一个Java语言的单元测试框架。它由KentBeck和ErichGamma建立,逐渐成为源于KentBeck的sUnit的xUnit家族中为最成功的一个。JUnit有它自己的JUnit扩展
JUnitJava单元测试框架
0
NodeUnitNode.js 单元测试框架
NodeUnit是Node.js的单元测试框架,基于assert模块为node.js和浏览器提供了简单的异步单元测试。特征使用简单只需从模块中导出测试与node.js一起使用并在浏览器中帮助您在测试异
NodeUnitNode.js 单元测试框架
0