2017-04-26 67 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基本上调用测试寄存器测试,后来因此只要运行它作为测试创建是为班级建设的一部分进行,每个试验都有一个唯一的字符串,你应该罚款。