web-dev-qa-db-ja.com

Mavenからscalatestで単一のテストを実行する方法

これを行う方法に関するドキュメントは見つかりませんでした。 JUnitの場合、同等のものは次のようになります。

mvn -Dtest=org.Apache.spark.streaming.InputStreamSuite test
17
javadba

ここから答えを見つけました。それは機能します:( https://groups.google.com/forum/#!topic/scalatest-users/Rr0gy61dg-

HelloSuiteでテスト「保留中のテスト」を実行し、HelloWordSpecですべてのテストを実行します。

 mvn test -Dsuites='org.example.
HelloSuite @a pending test, org.example.HelloWordSpec' 
  • 'hello'を含むHelloSuiteですべてのテストを実行します。

    mvn test-Dsuites='org.example.HelloSuitehello'

詳細については: http://scalatest.org/user_guide/using_the_scalatest_maven_plugin

22
user1132007

答えを見つけました:それは

-DwildcardSuites

したがって、コマンドラインの例を次に示します。

mvn -pl streaming -DwildcardSuites=org.Apache.spark.streaming.InputStreamSuite test

更新新しいバージョンのscalatestを使用

 -Dsuites

したがって、構文は次のようになります。

mvn -pl streaming -Dsuites=org.Apache.spark.streaming.InputStreamSuite test
17
javadba

同じモジュールにいくつかのJavaテストがある場合、sparkの多くがそうであるように、それらをオフにする必要があることに注意してください。これは、次のように伝えることで実行できます。そこにないテストを実行するための確実な火

これが私が実行したばかりのテストです

mvn test -Dtest=moo -DwildcardSuites=org.Apache.spark.deploy.yarn.ClientSuite

これはJavaテストをスキップし、scala 1つだけを実行します。

Scalatestが実行しないように思われることの1つは、Mavenのsurefireと同じように、スイート内で単一のテストを実行できるようにすることです。大きなスイートで失敗したテストが1つある場合、これは理想的ではありません。

[Correction 2016-08-22:名前で特定のスイートを要求できるようです。以下の他の答えを見てください。間違って幸せ]。

15
Steve Loughran