Linux命令行下運行Hadoop單元測試

最近在學習Hadoop,在虛擬機上面的Centos系統下搭建了一個單機的Hadoop系統,對照《Hadoop權威指南》一邊看一邊運行裏面的例子。因爲大部分程序員都是用Eclipse來開發Hadoop程序,但我習慣於用命令行形式來寫代碼和運行程序。在Hadoop裏面作單元測試時,用Eclipse網上卻是有不少的實例,當如何在命令行下運行單元測試確實讓我犯難了,難爲了我好幾天。晚上在Junit官網上看了相關資料,在Java環境下運行單元測試爲: java

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

將上面的命令行進行改造,移植到hadoop後爲: apache

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

######################################################## oop

在本機測試記錄以下: 單元測試

  • 設置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)
相關文章
相關標籤/搜索