16

ScalaTest でのテストには Spec トレイトを使用します。スイート全体を実行する場合、常に同じ順序で実行されるとは限りません。Google のほとんどの回答では、スイートを定義し、すべてのテスト名を指定することが提案されています。ただし、これには、新しいテストを追加するたびにテスト名を追加する必要があります。

DiscoverySuite 自体を使用して、テストの実行順序を定義することはできますか? アルファベット順にテストを実行するように。DiscoverySuite の拡張を検討しましたが、DiscoverySuite はスケーラテスト専用のようです。

- -より詳しい情報 - -

順序付けとは、つまり、テスト A、B、C がある場合です。

class A extends Spec {..}
クラス B は Spec {..} を拡張します
class C extends Spec {..}

次に、テストを順番に実行します(A、B、C)。しかし、今起こっていることは、毎回異なる順序で実行されるということです。

4

2 に答える 2

12

はい、DiscoverySuite は ScalaTest に対して非公開です。Spec (ちなみに現在は FunSpec と呼ばれています) 内のテストの実行順序は、ソース ファイル内の出現順序として定義されています。テスト クラス自体の順序を定義するには、Discovery を使用する代わりに、nestedSuites メソッドを定義し、そのラッパー Suite を実行する必要があります。注文が不要になったら、ディスカバリーの使用に戻ることができます。次の ScalaTest リリースで、DiscoverySuite に定義済みの順序を追加する方法を検討します。

于 2012-06-29T12:44:24.227 に答える
1

http://doc.scalatest.org/1.0/org/scalatest/SequentialNestedSuiteExecution.htmlを参照してください。

これは、探している特定の動作を提供するようです。

于 2014-06-07T13:16:32.383 に答える