私は、SBTがspecs2テストを並行して実行していることに気付きました。これは、私のテストの1つがファイルからの読み書きを含んでいることを除き、予期せず失敗します。下記参照。テストの並列実行
は、各テストのために別のファイル名と涙ダウンを使用してシリアルで実行するすべてのテスト、
- よりも良くなるのオプションがありますか?
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の並列処理は、1つのファイル内ではなく、別々のテストファイルにまたがっていると思います。 – Pengin
はい、sbtはテスト間でこれを制御します。シーケンシャルはテストケース内で使用するのに適しています。また、暗黙的に文書化されているため、テスト仕様に近づけておくほうが理にかなっています。 –