如何使用scoverage运行单个Scala测试?

7
我知道 sbt clean coverage test 会使用项目中的所有测试用例生成覆盖报告,即使在 JVM 热身的情况下也需要很长时间才能完成。
我希望能够在我编写的代码上运行测试用例的覆盖率,因此我尝试运行单个测试用例,如 sbt coverage test-only package.ScalaSpec,但是我收到了以下错误。 错误信息 [scala-project] $ coverage test-only package.ScalaSpec <set>:1: error: eof expected but 'package' found. coverageEnabled in ThisBuild := true test-only package.ScalaSpec ^ [error] Error parsing expression.

由于某些原因,sbt coverage "test-only package.ScalaSpec" 对我来说无效,它会抛出相同的异常,但是这个命令可以正常工作:sbt coverage "test:testOnly package.ScalaSpec" - Nkokhelox
1个回答

8

请将完全合格的包名称用引号括起来。

覆盖率失败是因为它解析命令时认为test目标是覆盖率的第一个参数,而限定的包名称package.ScalaSpec是第二个参数。

相反,您应该只给覆盖率一个参数,如下所示:
sbt coverage "testOnly package.ScalaSpec"

之前,覆盖率将test命令作为其目标,并跟随意外的第二个参数。
之后,覆盖率将testOnly package.ScalaSpec命令作为其目标。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接