如何使用“ sbt测试”使自己的方法中的弃用警告静音?

时间:2018-07-27 06:57:48

标签: scala sbt deprecated scalatest

我在一个我不赞成使用的库中有一个方法:

@deprecated(
  "Use one of the specific count{Success,RecognisedFailure,Failure} methods",
  "messaging 1.1")
def count( ... ): Future[T] = { ... }

在我的build.sbt中,我检查过时警告并将警告变成错误。我想知道我使用的其他库中的不赞成使用,警告为错误已使我们对良好的编码习惯保持警惕。

scalacOptions ++= Seq(
  "-deprecation",
  "-Xfatal-warnings",
  ...
)

我有一些测试使用了不推荐使用的方法,而该方法早于不推荐使用。测试类使用来自Scalatest的FunSpec,我使用sbt test运行测试。

我想保留这些测试,直到我真正删除该方法为止-仅因为不赞成使用它并不意味着我可以让它中断。

这是我的问题:编译器看到我的弃用警告,将其升级为错误,并拒绝运行sbt test

[error] MetricsSenderTest.scala:53:25: method count in class MetricsSender
        is deprecated (since messaging 1.0): Use one of the specific
        count{Success,RecognisedFailure,Failure} methods
[error]           metricsSender.count(metricName, f)
[error]                         ^

因此,我要么必须删除我的@deprecated批注,要么不运行带有警告作为错误的警告,这两种警告似乎都不理想。

有没有办法告诉Scala“嘿,如果此测试用例调用不推荐使用的方法就可以了吗?”

(或更妙的是,“此测试用例应调用不推荐使用的方法,如果不是,那就是一个错误”?)


我完成了各种各样的Google搜索,并在“ scalatest”,“ deprecations”,“ warnings”上进行了各种排列,但我所能找到的只是关于如何发出过时警告,将警告变为错误或过时的说明。来自编译器的警告-我已经知道该怎么做!

1 个答案:

答案 0 :(得分:0)

您可以尝试在scalacOptions中添加“ -unchacked”。

scalacOptions ++= Seq(
  "-unchecked",
  "-deprecation",
  "-Xfatal-warnings",
  ...
)