Scala:测试结束后如何执行操作?
Scala: how can I perform actions when test are over?
我正在使用 scalatest_2.11
版本 2.2.1。我正在尝试在 SparkContext 上编写 运行 的测试。我如何在测试开始时启动 SparkContext,让这个 Sc 完成所有测试,然后在所有测试完成后停止它?
(我知道它应该会自己停止,但我还是喜欢自己做)
您可以使用 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.
}
}
我正在使用 scalatest_2.11
版本 2.2.1。我正在尝试在 SparkContext 上编写 运行 的测试。我如何在测试开始时启动 SparkContext,让这个 Sc 完成所有测试,然后在所有测试完成后停止它?
(我知道它应该会自己停止,但我还是喜欢自己做)
您可以使用 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.
}
}