Ich versuche, ein Test-Framework für Spark-Jobs einzurichten. Ich möchte die SharedSparkContext-Eigenschaft spark-testing-base verwenden, die auf ScalaTests BeforeAndAfterAll-Eigenschaft basiert, um Setup und Abbau zu verwalten. Etwas in meiner aktuellen Umgebung verursacht, dass die beforeAll- und afterAll-Methoden bei jedem Testfall aufgerufen werden.Was ist der richtige Weg, ScalaTests BeforeAndAfterAll-Eigenschaft mit sbt und IntelliJ IDEA zu verwenden?
(Auch wenn ich dieses redundante Verhalten zulassen wollte, konnte ich nicht: Ich weiß nicht, wie ich mein HiveContext-Objekt richtig abreiße, so dass der zweite Aufruf von beforeAll eine Ausnahme auslöst, die bei "ERROR XSDB6" endet : Eine andere Instanz von Derby hat möglicherweise bereits die Datenbank/Users/applemacbookpro/git/mein-project/metastore_db gestartet. ")
Ich verwende IntelliJ IDEA mit einem SBT-verwalteten Build.
- MacOS 10.11.4
- IntelliJ IDEA 2016.1.3
- nicht sicher SBT Version sollte
- ScalaTest 2.2.6
Per README von Funkentest neueren Datums sein -base und this question, habe ich gesetzt
parallelExecution in Test := false
in build.sbt.
Hier ist mein Beispiel:
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")
}
}
ich es mit einem Rechtsklick im Editor-Fenster auslösen und aus dem Kontextmenü ausgeführt wird; der Ausgang ist:
/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
konnte nicht mit Windows-7/IntelliJ-2016.2/SBT-0.13.12/ScalaTest-2.2.6 für Scala-2.10 und Scala-2.11 reproduziert werden. – heenenee