私はscalatest_2.11
バージョン2.2.1を使用しています。私はSparkContextで実行されるテストを書くことを試みています。テストの開始時にSparkContextを起動し、このScをすべてのテストに使用して、すべて完了したら停止するにはどうすればよいですか?Scala:テストが終了したらどのようにアクションを実行できますか?
(私はそれ自体が停止すると仮定していることを知っているが、I'sdはまだそれを自分でやりたい)
私はscalatest_2.11
バージョン2.2.1を使用しています。私はSparkContextで実行されるテストを書くことを試みています。テストの開始時にSparkContextを起動し、このScをすべてのテストに使用して、すべて完了したら停止するにはどうすればよいですか?Scala:テストが終了したらどのようにアクションを実行できますか?
(私はそれ自体が停止すると仮定していることを知っているが、I'sdはまだそれを自分でやりたい)
あなたはScalaTestからBeforeAndAfterAllを使用することができます。 SparkContextを開始および停止し、他のテストで使用する基本特性を定義します。
trait SparkTest extends BeforeAndAfterAll {
self: Suite =>
@transient var sc: SparkContext = _
override def beforeAll {
val conf = new SparkConf().
setMaster("local[*]").
setAppName("test")
sc = new SparkContext(conf)
super.beforeAll()
}
override def afterAll: Unit = {
try {
sc.stop()
} finally {
super.afterAll
}
}
}
// Mix-in the trait with your tests like below.
class MyTest extends FunSuite with SparkTest {
test("my test") {
// you can access "sc" here.
}
}
チェックアウトhttps://github.com/holdenk/spark-testing-base - それを行うとはるかに、特にhttps://github.com/holdenk/spark-testing-baseを見てみましょう/blob/master/src/main/1.3/scala/com/holdenkarau/spark/testing/SharedSparkContext.scala –
これは単純なbeforeAllの例です:https://github.com/kevinmeredith/scalatest_beforeAll_testing –