【发布时间】:2019-10-10 03:05:36
【问题描述】:
我对 scala 和 sbt 很陌生。
我想用 sbt 程序集运行 Junit 测试。
我设计了我所有的测试,并使用 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
}
我附上你the log file 作为问题,对我来说,作为新手似乎无法理解。这让我快疯了。
This 是我的抽象测试类,它应该在每个测试类中用@BeforeClass 初始化一个火花上下文。我只包括这个是因为我怀疑它可能是失败的原因。
您对如何解决有什么建议吗?
谢谢
【问题讨论】:
-
你使用的是什么版本的 sbt、scala 和 sbt-assembly?我可以用你的设置来构建。也许也将您的测试包含在 pastebin 中。
-
我为 scala 版本编辑了我的代码 sn-p。我的 sbt 版本是 1.2.8
-
你是从 IDE 还是 sbt 运行测试?
-
当我从 intellij(播放按钮)进行测试时,一切都很顺利。当我启动 sbt 程序集时,我的所有测试都会中断
标签: scala junit sbt sbt-assembly