我注意到SBT正在并行运行我的specs2测试。这似乎是好的,但其中一个测试涉及从文件中读取和写入数据,因此会产生不可预测的失败,如下所示。
除了以下两种方法之外,还有更好的选择吗?
- 将所有测试设置为串行运行,
- 为每个测试使用单独的文件名和tear-downs?
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
}
}