2011-08-09 14 views
35

sbt 0.10.1では、私はよく私のテストの数を絞り込むためにtest-onlyを使用します。正規表現にのみ一致するテストを実行するにはどうすればよいですか?

ただし、名前/説明が正規表現に一致するテストのみを実行するように絞り込みたいと思います。このようなことを達成するための構文がありますか?

sbt> test-only .*someRexExp.* 
+1

もしそうでない場合(それがうまくいかない場合)、これはSBTのbugtrackerの機能リクエストでなければなりません。 – Raphael

+1

私はあなたのプロジェクトファイルを編集するように提案することができます。これは正規表現を受け入れるためです。 –

答えて

47

完全正規表現はtestOnlyでサポートされていません。ただし、ワイルドカードがサポートされています。

sbt> testOnly com.example.*Spec 

のみアスタリスク*は、期間を特別にここに解釈されていません。これにより、com.example.で始まり、Specで終わるすべてのテストが選択されます。

それとも、すべてのテストSpec S:

sbt> testOnly *Spec 

testOnlyおよびその他のテストの情報がここに文書化されている:http://www.scala-sbt.org/release/docs/Detailed-Topics/Testing

8
あなたは(の代わりに、またはそれに加えて自分の名前でのテストに を一致させることができます

スイートクラス名)をframework-specific runner argumentsを使用して指定します。 -z引数とsupports a substring match ScalaTestは:

> testOnly -- -z insert 
> testOnly *TreeSpec -- -z insert 

これは直感と同じように、TreeSpecで終わるのスイート内でのみ一致する場合、その名前に「挿入」を持つすべてのテストを実行します。 -n TagName-l TagNameを使用して、ScalaTestのタグ付けサポートからのタグをそれぞれ含めるか除外し、正確なテスト名と一致するように-tを使用することもできます。

> testOnly -- -ex ".*someRexExp.*" 

-include-excludeサポートSPEC2のタグ付け機能:-ex引数を持つ

Specs2 supports full Java regular expressions

ランナーがサポートする引数の完全なリストについては、インラインリンクを参照してください。これらはtestOnly sbtコマンドでのみ動作し、testでは動作しません。

+1

sbtを入力せずにこれを実行したい場合は、sbtの後にargsを正しく引用する必要があります: 'sbt" testOnly - -z insert "' –

関連する問題