ScalaTestでは、スイートに0から多数のテストと0から多数のネストされたスイートを含めることができます。スイートのネストされたスイートは、そのnestedSuitesメソッドによって提供され、実行するテストの名前は、そのtestNamesメソッドによって提供されます。一般的な答えは、組み込みのScalaTestスタイルの特性の場合、ネストされたスイートとテストの実行の順序は、nestedSuitesとtestNamesの戻り値に表示される順序によって決定されるということです。したがって、他の方法で必要な順序が得られない場合は、これらのメソッドのいずれかまたは両方をオーバーライドできます。
ただし、テストの順序については、テストが関数であるトレイトの1つを使用する方がおそらくはるかに簡単です。これらのトレイトは、ソースに表示される順序でテストを実行するためです。(対照的に、Suiteはテスト名のアルファベット順にテストを実行します。)したがって、初心者にはFunSuiteを使用することをお勧めします。例えば:
import org.scalatest.FunSuite
class MySuite extends FunSuite {
test("this one will run first because it appears first") {
// ...
}
test("this one will run second because it appears second") {
// ...
}
test("this one will run third, and so on") {
// ...
}
}
スイートを順番に実行する限り、それが行われることはめったにありません。なぜなら、人々は、作成時に新しいスイートを見つけるためにディスカバリーを使用することを好むからです。しかし、それを行う方法は、nestedSuitesをオーバーライドすることです。1.5では、Suitesクラスはそれを行うための便利な方法です。
import org.scalatest.Suites
class MySuites extends Suites(
new MyFirstSuite,
new MySecondSuite,
new MyThirdSuite,
new MyFourthSuite
)
次に、MySuitesを実行すると、ネストされたスイートが宣言した順序で実行されます。