2012-11-03 65 views
3

我正在使用scalatest。問題是測試報告很難閱讀。測試名稱已用$u0020:$colon等替換了空格。

例如在:

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

...在報告會看起來像:

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

如何預防呢?斯卡拉的

版本和scalatests是:

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)

+1

什麼樣的報告?萬無一失? CI服務器?聲納? –

+0

我的意思是出現在控制檯上的標準輸出。 –

回答

2

我認爲當你升級到2.10.0斯卡拉-M7,你不小心從ScalaTest 2.0里程碑意義的版本降級到ScalaTest 1.9。 Back ticks中漂亮的方法名稱是ScalaTest 2.0的一項功能,它在2.0之前的ScalaTest版本中不可用。您可能希望使用爲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" 

您還會注意到有關套件的測試方法產生警告,他們可能仍會拿出的美元符號在其中,即使在2.0.M4-2.10.0-M7-B1。這是因爲套件在2.0.M4中一般不贊成使用。要獲得美麗的名字,您需要將套件移植到Spec。

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

+0

最後我遷移到了FreeSpec。這是非常靈活和易於理解的方式來編寫/讀取測試。 –

4

考慮,而不是延長FunSuite

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

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

}