如何在包含 Maven 配置文件时在 Spark 中 运行 只有一个 Scalatest(通过 wildcardSuites)

How to run only a single Scalatest (via wildcardSuites) in Spark when including Maven profiles

我有以下命令行 运行 通过 maven 的 Spark scalatest:

mvn  -pl mllib -Pyarn -Phadoop-2.6 -Dhadoop2.7.1 
-Dscala-2.11 '-D!scala-2.10' -Dmaven.javoc.skip=true 
-DmembersOnlySuites=org.apache.spark.ml.feature.BinarizerSuite test

让我们分解一下:

Select only the mllib module:

-pl mllib

Set various profiles and scala settings:

-Pyarn -Phadoop-2.6 -Dhadoop2.7.1 -Dscala-2.11 '-D!scala-2.10' -Dmaven.javoc.skip=true 

注意:需要这些配置文件和设置才能为我们的环境获取正确的编译选项。已多次验证包装。

Choose the BinarizerSuite only:

-DwilcardSuites=org.apache.spark.ml.feature.BinarizerSuite test

结果 接近 我所希望的 - 除了 mllib java 个测试用例正在 运行.

我用过

mvn -DwildcardSuites=org.apache.spark.ml.feature.BinarizerSuite test

这确实做对了:只测试了一个套件。所以似乎 maven 命令行解析器没有被提供预期的选项顺序。但是我已经尝试了所有不同的排序方式..

Spark 邮件列表中的 Sean Owen 提供了答案:我缺少以下设置:

 -Dtest=None

该设置会关闭 Java 测试。