Spark 单元测试

依赖

编辑 pom.xml 文件,添加 ScalaTest 依赖:

<dependency>  
    <groupId>org.scalatest</groupId>
    <artifactId>scalatest_2.10</artifactId>
    <version>${scalatest.version}</version>
</dependency>  

编写测试用例

首先,创建测试用例类继承 FunSuite 类,使用 BeforeAndAfterAll 特质:

class MyTest extends FunSuite with BeforeAndAfterAll { ... }  

然后,复写 beforeAllafterAll 方法。beforeAll 方法在所有测试用例开始前调用,在 beforeAll 方法里实现 SparkContext 的初始化工作。afterAll 方法在所有测试用例结束后调用,在 afterAll 方法里实现 SparkContext 的清理工作。

定义私有字段 sc

private var sc: SparkContext = _  

复写 beforeAllafterAll 方法:

override protected def beforeAll(): Unit = {  
  val conf = new SparkConf().setAppName("join-udaf-test").setMaster("local[*]")
  sc = new SparkContext(conf)
}

override protected def afterAll(): Unit = {  
  sc.stop()
}

编写一个简单的测试用例:

test("this is a test") { ... }