我注意到SBT正在并行运行我的specs2测试。这看起来不错,除了我的一个测试涉及从文件读取和写入并因此不可预测地失败,例如,见下文。并行执行测试
有什么比
- 更好的选择,设置所有的测试以串行运行,
- 使用每个测试单独的文件名和撕裂起伏?
class WriteAndReadSpec extends Specification{
val file = new File("testFiles/tmp.txt")
"WriteAndRead" should {
"work once" in {
new FileWriter(file, false).append("Foo").close
Source.fromFile(file).getLines().toList(0) must_== "Foo"
}
"work twice" in {
new FileWriter(file, false).append("Bar").close
Source.fromFile(file).getLines().toList(0) must_== "Bar"
}
}
trait TearDown extends After {
def after = if(file.exists) file.delete
}
}
这是拼图的缺失部分。事实上,即使没有自定义Build.scala建议的其他答案,它也可以工作。我猜SBT并行性是跨越单独的测试文件而不是单个文件。 – Pengin
是的,sbt在测试之间控制这个,sequential是在测试用例中正确使用的。保持接近测试规格更有意义,因为那样会隐含记录。 –