2012-07-17 1 views
13

テストスイートを無効にするにはどうすればよいですか?すなわち、クラス内のすべてのテストをFunSpecに拡張しますか?ScalaTestでテストスイートを無効にする方法

私が見つけた唯一の解決策は、各テストの前にitignoreに置き換えることですが、数十回のテストでそれを行うのは退屈です。

+2

あなたがしていることは何でも[コメントしないでください]](http://www.informit.com/articles/article.aspx?p=1334908) –

答えて

21

1.8でこれを行う簡単な方法は、仮引数を取るコンストラクタを追加することです。 2.0では

class MySuite(ignore: String) extends FunSuite { 
    // ... 
} 

あなただけのクラスに@ignoreを書くことができるようになります::ScalaTest(およびSBT)は、公共、引数なしのコンストラクタを持っていない場合、クラスを発見しません

@Ignore 
class MySuite extends FunSuite { 
    // ... 
} 
+0

私はこれを試しましたが、私は使用していませんでしたscala 2.10.2、私を助けてください。 @BillVenners – user3995789

2

タグは1つのオプションですが、それに応じて各タグにタグを付ける必要があります。そのように完全なスーツを除外することはできません。しかし、ユーザー272735で触れたように、タグ付けテストは1回限りの作業です。

もう1つのオプションは、マスタースイートを定義し、nestedSuitesのリストを実行するスイート(see the docs)に限定することです。明らかに欠点は、マスターテストスイートを維持する、つまり新しく作成したテストスイートを追加することです。あなたは、フォルダ内を再帰的に検索し、見つけることができるすべてのテストスーツのリストを作成し、ブラックリストに入れたものを差し引くことでこれを避けることができます。さらに、フォルダを再帰的に使用すると、(外部で)指定された条件に一致するファイルをフィルタで除外することができます。

第3のオプション - よりハッキリですが、ブラックリストに追加するスイートが属するパッケージを変更することです。テストランナーを使用して、特定のパッケージに含まれるスーツのみを実行することができます。詳細は、"Specifying 'members-only' and 'wildcard' Suite paths"のドキュメントを参照してください。

5

@Ignoreは、明確なテストとスーツ全体の両方に使用できます。

関連する問題