Linux命令行下运行Hadoop单元测试

最近在学习Hadoop,在虚拟机上面的Centos系统下搭建了一个单机的Hadoop系统,对照《Hadoop权威指南》一边看一边运行里面的例子。由于大部分程序员都是用Eclipse来开发Hadoop程序,但我习惯于用命令行形式来写代码和运行程序。在Hadoop里面做单元测试时,用Eclipse网上倒是有很多的实例,当如何在命令行下运行单元测试确实让我犯难了,难为了我好几天。晚上在Junit官网上看了相关资料,在Java环境下运行单元测试为:

 java -cp .:/usr/share/java/junit.jar org.junit.runner.JUnitCore [test class name]

将上面的命令行进行改造,移植到hadoop后为:

 hadoop jar /usr/share/java/junit.jar org.junit.runner.JUnitCore [test class name]

########################################################

在本机测试记录如下:

  • 设置CLASSPATH


CLASSPATH包含hamcrest和junit的jar文件的完整目录,例如我的CLASSPATH为:
.:/opt/jdk1.6.0_45/lib:/opt/jdk1.6.0_45/jre/lib:/root/hadoop-1.2.0/hadoop-core-1.2.0.jar:/opt/jdk1.6.0_45/lib/junit-4.11.jar:/opt/jdk1.6.0_45/lib/hamcrest-core-1.3.jar
  • 编译
// SingleResourceConfigurationTest.java
// == SingleResourceConfigurationTest
import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.assertThat;

import java.io.IOException;

import org.apache.hadoop.conf.Configuration;
import org.junit.Test;

public class SingleResourceConfigurationTest {

  @Test
  public void get() throws IOException {
    // vv SingleResourceConfigurationTest
    Configuration conf = new Configuration();
    conf.addResource("configuration-1.xml");
    assertThat(conf.get("color"), is("yellow"));
    assertThat(conf.getInt("size", 0), is(10));
    assertThat(conf.get("breadth", "wide"), is("wide"));
    // ^^ SingleResourceConfigurationTest
  }

}

javac SingleResourceConfigurationTest.java

  • 运行
hadoop  org.junit.runner.JUnitCore  SingleResourceConfigurationTest

  • 结果
JUnit version 4.5
.
Time: 0.247

OK (1 test)

转载于:https://my.oschina.net/chyileon/blog/134379

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值