Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala NoClassDefFoundError使用scoverage插件在SBT中运行测试_Scala_Sbt_Scoverage - Fatal编程技术网

Scala NoClassDefFoundError使用scoverage插件在SBT中运行测试

Scala NoClassDefFoundError使用scoverage插件在SBT中运行测试,scala,sbt,scoverage,Scala,Sbt,Scoverage,我有一个SBT项目,结构如下:。它包括标准的main和test目录,另外还有It和e2e。还有一个任务“全部测试”,它运行所有测试。一切正常,除非我运行e2e或测试与覆盖插件一起。我得到:java.lang.NoClassDefFoundError:scoverage/Invoker$ addSbtPlugin("com.mojolly.scalate" % "xsbt-scalate-generator" % "0.5.0") addSbtPlugin("org.scalatra.sbt"

我有一个SBT项目,结构如下:。它包括标准的maintest目录,另外还有Ite2e。还有一个任务“全部测试”,它运行所有测试。一切正常,除非我运行e2e或测试与覆盖插件一起。我得到:java.lang.NoClassDefFoundError:scoverage/Invoker$

addSbtPlugin("com.mojolly.scalate" % "xsbt-scalate-generator" % "0.5.0")

addSbtPlugin("org.scalatra.sbt" % "scalatra-sbt" % "0.3.5")

addSbtPlugin("org.scoverage" % "sbt-scoverage" % "1.1.0")
使用show it:dependencyClasspathshow e2e:dependencyClasspath,我可以看到e2e类路径缺少平均插件jar。你知道哪里出了问题,怎么解决吗

构建.sbt

import org.scalatra.sbt._
import sbt.Keys._
import sbt._

object MaAppBuild extends Build {
  val Organization = "com.my-org"
  val Name = "My App"
  val Version = "0.1.0-SNAPSHOT"
  val ScalaVersion = "2.11.6"
  val AkkaVersion = "2.3.4"

  val ScalatraVersion = "2.3.0"
  lazy val project = Project(
    "My-App",
    file("."),
    configurations = Configurations.default ++ Testing.configs,
    settings = Defaults.coreDefaultSettings ++ ScalatraPlugin.scalatraSettings ++ Testing.settings ++ Seq(
      organization := Organization,
      name := Name,
      version := Version,
      scalaVersion := ScalaVersion,
      resolvers += "Sonatype OSS Snapshots" at "http://oss.sonatype.org/content/repositories/snapshots/",
      resolvers += "Akka Repo" at "http://repo.akka.io/repository",
      libraryDependencies ++= Seq(
        "com.typesafe.akka" %% "akka-actor" % AkkaVersion,
        "com.typesafe.akka" % "akka-testkit_2.11" % AkkaVersion % "test;it;e2e",
        "net.databinder.dispatch" %% "dispatch-core" % "0.11.1",
        "org.scalatra" %% "scalatra" % ScalatraVersion,
        "com.typesafe.akka" %% "akka-testkit" % AkkaVersion % "test;it;e2e",
        "org.scalatra" %% "scalatra-scalatest" % ScalatraVersion % "test;it;e2e",
        "com.github.tomakehurst" % "wiremock" % "1.55" % "test;it;e2e",
        "ch.qos.logback" % "logback-classic" % "1.0.6" % "runtime",
        "org.scalatra" %% "scalatra-json" % "2.4.0.RC1",
        "org.json4s" %% "json4s-jackson" % "3.2.11",
        "com.typesafe" % "config" % "1.2.1",
        "org.json4s" %% "json4s-native" % "3.2.11",
        "org.eclipse.jetty" % "jetty-webapp" % "8.1.8.v20121106" % "container",
        "org.eclipse.jetty.orbit" % "javax.servlet" % "3.0.0.v201112011016" % "container;provided;test" artifacts Artifact("javax.servlet", "jar", "jar")
      )
    )
  )
}
集成和e2e测试配置:

import sbt.Keys._
import sbt._

object Testing {
  val IntegrationTest = config("it").extend(Runtime)

  val EndToEndTest = config("e2e").extend(Runtime)

  val configs = Seq(IntegrationTest, EndToEndTest)

  lazy val testAll = TaskKey[Unit]("test-all")

  private lazy val itSettings =
    inConfig(IntegrationTest)(Defaults.testSettings) ++
      Seq(
        fork in IntegrationTest := false,
        parallelExecution in IntegrationTest := false,
        scalaSource in IntegrationTest := baseDirectory.value / "src/it/scala",
        resourceDirectory in IntegrationTest := baseDirectory.value / "src/test/resources")

  private lazy val e2eSettings =
    inConfig(EndToEndTest)(Defaults.testSettings) ++
      Seq(
        fork in EndToEndTest := false,
        parallelExecution in EndToEndTest := false,
        scalaSource in EndToEndTest := baseDirectory.value / "src/e2e/scala",
        resourceDirectory in EndToEndTest := baseDirectory.value / "src/test/resources")


  lazy val settings = e2eSettings ++ itSettings ++ Seq(
    testAll <<= (test in EndToEndTest) dependsOn (test in IntegrationTest) dependsOn(test in Test)
  )
}

您似乎需要在sbt项目中添加一个设置:

适用于我,使用
“org.scoverage”%“sbt scoverage”%“1.5.0”


我发现对于版本
,我不能重现任何错误。你能减少上面的设置并添加任何缺少的东西来触发故障吗?发送到sbt的代码和任务/命令丢失。
coverageEnabled in Test := true
coverageEnabled.in(ThisBuild ,Test, test) := true