如何只执行与正则表达式匹配的测试?

时间:2011-08-09 14:24:59

标签: scala sbt

在sbt 0.10.1中,我经常使用test-only来缩小测试次数。

sbt> test-only com.example.MySpec

但是,我想缩小范围,以便我只运行名称/描述与正则表达式匹配的测试。是否有一些语法可以实现这样的目标?

sbt> test-only .*someRexExp.*

2 个答案:

答案 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