我在一个我不赞成使用的库中有一个方法:
@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”上进行了各种排列,但我所能找到的只是关于如何发出过时警告,将警告变为错误或过时的说明。来自编译器的警告-我已经知道该怎么做!
答案 0 :(得分:0)
您可以尝试在scalacOptions中添加“ -unchacked”。
scalacOptions ++= Seq(
"-unchecked",
"-deprecation",
"-Xfatal-warnings",
...
)