在sbt 0.10.1中,我经常使用test-only
来缩小测试次数。
sbt> test-only com.example.MySpec
但是,我想缩小范围,以便我只运行名称/描述与正则表达式匹配的测试。是否有一些语法可以实现这样的目标?
sbt> test-only .*someRexExp.*
答案 0 :(得分:49)
testOnly
不支持完整的正则表达式。但是,支持通配符。
sbt> testOnly com.example.*Spec
此处仅解释星号*
,而不是句点。这将选择以com.example.
开头并以Spec
结尾的所有测试。
或者只是所有测试Spec
:
sbt> testOnly *Spec
testOnly
和其他测试信息记录在此处:http://www.scala-sbt.org/release/docs/Detailed-Topics/Testing
答案 1 :(得分:11)
您可以使用framework-specific runner arguments按照名称(而不是套件类名称)对测试案例进行匹配。带有-z
参数的ScalaTest supports a substring match:
> testOnly -- -z insert
> testOnly *TreeSpec -- -z insert
这将使用" insert"运行所有测试。在他们的名字中,只有套房内的匹配案例以TreeSpec
结尾,就像你想要的那样。您还可以使用-n TagName
和-l TagName
分别包含或排除ScalaTest标记支持中的标记,并-t
匹配精确的测试名称。
具有-ex
参数的Specs2 supports full Java regular expressions:
> testOnly -- -ex ".*someRexExp.*"
-include
和-exclude
支持Spec2的标记功能。
请参阅内联链接以获取跑步者支持的完整参数列表。这些似乎仅适用于testOnly
sbt命令,而不适用于test
。