3

我正在使用 scalatest。问题是测试报告很难阅读。测试名称已将空格替换为$u0020:with$colon等。

例如:

def `test: find '.gitignore' file on disk` = { 
    //...
}

...在报告中将如下所示:

test$colon$u0020find$u0020$u0027$u002Egitignore$u0027$u0020file$u0020on$u0020disk

如何防止这种情况?

scala 和 scalatest 的版本是:

libraryDependencies += "org.scalatest" % "scalatest_2.10.0-M7" % "1.9-2.10.0-M7-B1" % "test"
scalaVersion := "2.10.0-M7"

已编辑

线索。我认为它在幕后使用Thread.currentThread().getStackTrace()(depth).

4

2 回答 2

4

FunSuite考虑改为扩展:

@RunWith(classOf[JUnitRunner])
class SomeTest extends FunSuite {

    test("test: find '.gitignore' file on disk") {
        //..
    }

}
于 2012-11-03T12:35:43.550 回答
2

我认为当您升级到 Scala 2.10.0-M7 时,您会不小心从 ScalaTest 2.0 里程碑版本降级到 ScalaTest 1.9。反引号中漂亮的方法名称是 ScalaTest 2.0 的一个特性,该特性在 ScalaTest 2.0 之前的版本中不可用。您可能想要使用为 Scala 2.10.0-M7 构建的 ScalaTest 的 2.0.M4 版本。

libraryDependencies += "org.scalatest" %% "scalatest" % "2.0.M4-2.10.0-M7-B1" % "test"
scalaVersion := "2.10.0-M7"

您还会注意到关于 Suite 测试方法的弃用警告,即使在 2.0.M4-2.10.0-M7-B1 下,它们可能仍会带有美元符号。那是因为 Suite 在 2.0.M4 中作为一个 stye 特性通常被弃用。要恢复漂亮的名称,您需要将 Suite 移植到 Spec。

http://www.artima.com/docs-scalatest-2.0.M4/#org.scalatest.Spec

于 2012-11-03T20:25:17.410 回答