сборка sbt с ошибкой теста Junit - PullRequest
0 голосов
/ 23 мая 2019

Я очень плохо знаком с Scala и SBT.
Я хотел запустить тесты Junit со сборкой sbt.
Я спроектировал все мои тесты и все правильно с IntelliJ. Когда я пытаюсь построить с помощью тестов, он всегда терпит неудачу, давая много ошибок.

Вот мой build.sbt

name := "updater"
version := "0.1-SNAPSHOT"
scalaVersion := "2.11.12"

val sparkVersion = "2.4.0"

    libraryDependencies ++= Seq(

          //"org.scala-lang" % "scala-reflect" % "2.11.12",
          "org.apache.spark" %% "spark-core" % sparkVersion % Provided,
          "org.apache.spark" %% "spark-sql" % sparkVersion % Provided,
          "com.typesafe" % "config" % "1.3.4",


          //Testing
          "junit" % "junit" % "4.10" % Test,
          "com.novocode" % "junit-interface" % "0.11" % Test
          //  exclude("junit", "junit-dep")
          ,
          //"org.scalatest" %% "scalatest" % "3.0.7" % Test,
          "org.easymock" % "easymock" % "4.0.2" % Test,


          //Logging
          "ch.qos.logback" % "logback-classic" % "1.2.3",
          "com.typesafe.scala-logging" %% "scala-logging" % "3.9.0"
        )

        assemblyMergeStrategy in assembly := {
          case PathList("src/test/resources/library.properties", xs@_*) => MergeStrategy.discard
          case PathList("META-INF", xs@_*) => MergeStrategy.discard
          case x => MergeStrategy.first
        } 

Я прикрепляю вам файл журнала как проблему, мне как новичку кажется не понятным. Это сводит меня с ума.

Этот - мой абстрактный тестовый класс, который должен инициализировать контекст искры с @BeforeClass в каждом тестовом классе. Я включил это только потому, что подозреваю, что это может быть причиной сбоя.

У вас есть предложения по ее решению?
Спасибо

1 Ответ

0 голосов
/ 18 июля 2019

Я создавал такой класс:

 abstract class SparkTest {

  val spark: SparkSession = SparkTest.spark

}

    object SparkTest {
      var spark: SparkSession = _

      @BeforeClass
      def initializeSpark(): Unit = {
        spark = SparkSession
          .builder()
          .appName("TableUpdaterTest")
          .master("local")
          .getOrCreate()
      }

      @AfterClass
      def stopSpark(): Unit = {
            spark.stop()
      }
    }

Видимо, комментируя spark.stop() все заработало.
У кого-нибудь есть идея, почему?

...