通常我使用这组选项来编译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")