我没有找到任何关于如何做这件事的文档。对于JUnit,相当于:
mvn -Dtest=org.apache.spark.streaming.InputStreamSuite test
tl;dr mvn test -Dsuites="some.package.SpecsClass"
我在这里找到了答案并且它有效:(https://groups.google.com/forum/#!topic/scalatest-users/Rr0gy61dg-0)
运行测试用例中的 'a pending test' 在 HelloSuite
, 以及所有测试用例在 HelloWordSpec
:
mvn test -Dsuites='org.example.
HelloSuite @a pending test, org.example.HelloWordSpec'
运行包含'hello'
的HelloSuite
中的所有测试:
mvn test
-Dsuites='org.example.HelloSuite
hello'
了解更多详情,请访问:http://scalatest.org/user_guide/using_the_scalatest_maven_plugin
找到答案了:它是
-DwildcardSuites
以下是示例命令行:
mvn -pl streaming -DwildcardSuites=org.apache.spark.streaming.InputStreamSuite test
更新: 较新版本的 scalatest
使用
-Dsuites
因此,语法将是:
mvn -pl streaming -Dsuites=org.apache.spark.streaming.InputStreamSuite test
请注意,如果您在同一个模块中有一些Java测试(像spark一样),则需要关闭它们-您可以通过告诉surefire运行不存在的测试来完成这个操作。
这是我刚刚运行的测试。
mvn test -Dtest=moo -DwildcardSuites=org.apache.spark.deploy.yarn.ClientSuite
跳过Java测试,只运行Scala测试。
Scalatest似乎不能像Maven Surefire那样让你在套件中运行单个测试。如果你有一个在大套件中失败的测试用例,这并不理想。
[更正 2016-08-22: 看起来您可以按名称请求特定套件; 参见下面的其他答案。很高兴错了]。
-Dsuites 'org.example...'
而不是-Dsuites='org.example...'
? - bonnal-enzo