web-dev-qa-db-ja.com

正規表現のみに一致するテストを実行するにはどうすればよいですか?

Sbt 0.10.1では、頻繁にtest-onlyテストの数を絞り込む。

sbt> test-only com.example.MySpec

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

sbt> test-only .*someRexExp.*
39
tobym

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

sbt> testOnly com.example.*Spec

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

または、すべてのテストSpecs:

sbt> testOnly *Spec

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

50
Mark Harrah

テストでcasesframework-specificを使用して、(スイートクラス名の代わりに、またはそれに加えて)名前で照合できます。ランナー引数 。 ScalaTest は、-z引数を使用した部分文字列の一致 をサポートします。

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

これは、名前に「挿入」を含むすべてのテストを実行し、次に、最初のTreeSpecで終わるスイート内の一致するケースのみを実行します。また、-n TagNameおよび-l TagNameを使用して、ScalaTestのタグ付けサポートからタグを含めたり除外したりできます。また、-tを使用して、正確なテスト名と一致させることもできます。

Specs2 は、-ex引数を使用して、完全なJava正規表現 をサポートします:

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

-includeおよび-excludeは、Spec2のタグ付け機能をサポートしています。

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

13
ches