2017-04-26 48 views
1

增加新的測試中,我有一組存儲在文件輸入病例。編程通過ScalaTest

我想每種情況下是特定的scalatest「測試」,即,在控制檯中作爲一個單獨的測試報告和單獨地失敗。

不幸的是,實驗和谷歌認爲,這種能力可能不存在?

例如,這似乎是常見的情況(eliding爲簡單起見)

class MyTestingGoop extends FunSuite { 
    val input : Seq[SpecificTestCase] = ... 
    test("input data test") { 
     forAll(input) { case => ... } 
    } 
    //... 
} 

理想地,每個case呈現爲單獨的測試。這怎麼可以用ScalaTest完成?

+0

我寧願添加標籤(說'PerfTests')到坊間的測試,並運行特定標籤的測試。例如。 'mvn -DtagsToInclude = PerfTest test' – prayagupd

+0

@prayagupd:這並沒有解決編程測試生成和運行的具體問題。 –

+0

哦,哦,你說你的輸入是動態的,可能是10個不同的輸入,你想每個輸入有10個測試嗎?那是你的程序化意味着什麼,如果是的話,那是可行的。 – prayagupd

回答

2

你可以這樣做:

class MyTestingGoop extends FunSuite { 
    val input : Seq[SpecificTestCase] = ... 

    forAll(input) { 
    test("testing input" + input) { 
     // do something with the test 
    } 
    } 
} 

唯一的限制是,輸入具有獨特的toString。

在Funsuite基本上調用測試寄存器測試,後來因此只要運行它作爲測試創建是爲班級建設的一部分進行,每個試驗都有一個唯一的字符串,你應該罰款。