sbt:在编译测试时设置特定的scalacOptions选项

Tva*_*roh 12 scala sbt

通常我使用这组选项来编译Scala代码:

scalacOptions ++= Seq(
    "-deprecation",
    "-encoding", "UTF-8",
    "-feature",
    "-unchecked",
    "-language:higherKinds",
    "-language:implicitConversions",
    "-Xfatal-warnings",
    "-Xlint",
    "-Yinline-warnings",
    "-Yno-adapted-args",
    "-Ywarn-dead-code",
    "-Ywarn-numeric-widen",
    "-Ywarn-value-discard",
    "-Xfuture",
    "-Ywarn-unused-import"
)
Run Code Online (Sandbox Code Playgroud)

但他们中的一些不ScalaTest玩好,所以我想禁用-Ywarn-dead-code-Ywarn-value-discard编译测试时.

我尝试添加这样的范围

scalacOptions in Compile ++= Seq(...)
Run Code Online (Sandbox Code Playgroud)

要么

scalacOptions in (Compile, compile) ++= Seq(...)
Run Code Online (Sandbox Code Playgroud)

甚至

val ignoredInTestScalacOptions = Set(
    "-Ywarn-dead-code",
    "-Ywarn-value-discard"
)

scalacOptions in Test ~= { defaultOptions =>
  defaultOptions filterNot ignoredInTestScalacOptions
}
Run Code Online (Sandbox Code Playgroud)

但前两个禁用正常编译范围的选项,而后者不影响测试编译选项.

编译测试时如何才能有单独的选项列表?

Lio*_*orH 12

有同样的问题,@ Mike Slinn的回答对我不起作用.我相信测试选项扩展了编译选项?最终的诀窍是明确地从测试中删除了被忽略的选项

scalacOptions in Test --= Seq( "-Ywarn-dead-code", "-Ywarn-value-discard")

  • 正确.我填写了一个问题 - https://youtrack.jetbrains.com/issue/SCL-11824 (2认同)