【发布时间】:2016-12-04 13:56:34
【问题描述】:
我正在尝试为 Spark 作业设置测试框架。我想使用 spark-testing-base 的 SharedSparkContext 特征,它依赖于 ScalaTest 的 BeforeAndAfterAll 特征来管理设置和拆卸。关于我当前环境的某些事情导致围绕每个测试用例调用 beforeAll 和 afterAll 方法。
(即使我想允许这种多余的行为,我也不能:我不知道如何正确地拆除我的 HiveContext 对象,所以对 beforeAll 的第二次调用会引发一个异常,该异常在“ERROR XSDB6:另一个 Derby 实例可能已经启动了数据库 /Users/applemacbookpro/git/my-project/metastore_db。")
我将 IntelliJ IDEA 与 SBT 管理的构建一起使用。
- MacOS 10.11.4
- IntelliJ IDEA 2016.1.3
- 不确定 SBT 版本,应该是最新的
- ScalaTest 2.2.6
根据 spark-testing-base 和 this question 的自述文件,我已经放了
parallelExecution in Test := false
在 build.sbt 中。
这是我的例子:
import org.scalatest.{BeforeAndAfterAll, FlatSpec}
class ExampleSpec extends FlatSpec with BeforeAndAfterAll {
override def beforeAll(): Unit = {
println("in beforeAll")
super.beforeAll()
}
override def afterAll() {
println("in afterAll")
super.afterAll()
}
behavior of "example"
it should "succeed" in {
println("test 1")
}
it should "succeed again" in {
println("test2")
}
}
我通过右键单击编辑器窗口并从上下文菜单运行来触发它;输出是:
/Library/Java/JavaVirtualMachines/jdk1.8.0_77.jdk/Contents/Home/bin/java...
Testing started at 2:50 PM ...
in beforeAll
test 1
in afterAll
in beforeAll
test2
in afterAll
Process finished with exit code 0
【问题讨论】:
-
无法使用 Windows-7 / IntelliJ-2016.2 / SBT-0.13.12 / ScalaTest-2.2.6 重现 Scala-2.10 和 Scala-2.11。
标签: intellij-idea sbt scalatest