如何在maven的scalatest中运行单个测试

时间:2014-07-20 16:23:18

标签: scala maven scalatest

我还没有找到有关如何执行此操作的任何文档。对于JUnit,等效的是:

mvn -Dtest=org.apache.spark.streaming.InputStreamSuite test

3 个答案:

答案 0 :(得分:17)

找到答案:它是

-DwildcardSuites

所以这是示例命令行:

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

更新 scalatest的较新版本使用

 -Dsuites

所以语法是:

mvn -pl streaming -Dsuites=org.apache.spark.streaming.InputStreamSuite test

答案 1 :(得分:17)

我从这里找到答案并且有效:(https://groups.google.com/forum/#!topic/scalatest-users/Rr0gy61dg-0

HelloSuite中运行测试'待定测试',以及HelloWordSpec中的所有测试:

 mvn test -Dsuites='org.example.
HelloSuite @a pending test, org.example.HelloWordSpec' 
  • 在包含HelloSuite的{​​{1}}中运行所有测试:

    'hello' mvn test -Dsuites='org.example.HelloSuite

了解更多详情:http://scalatest.org/user_guide/using_the_scalatest_maven_plugin

答案 2 :(得分:15)

请注意,如果你在同一模块中进行了一些Java测试,那么就像火花一样,你需要将它们关闭 - 你可以通过告诉surefire来运行不存在的测试

这是我刚刚运行的测试

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

跳过java测试,只运行scala。

scalatest似乎没做的一件事就是让你在套件中运行一个单独的测试,就像maven surefire那样。如果你在一个大套房中有一个失败的测试,这是不理想的。

[更正2016-08-22 :看起来您可以按名称要求特定套房;看下面的其他答案。很高兴错了]。