开发者

How to execute tests that match a regular expression only?

In sbt 0.10.1, I frequently use test-only to narrow down the number of my tests.

sbt> test-only com.example.MySpec

However, I want to narrow down such that I onl开发者_如何学运维y run tests whose name/description matches a regular expression. Is there some syntax to achieve something like this?

sbt> test-only .*someRexExp.*


Full regular expressions are not supported by testOnly. Wildcards are supported, however.

sbt> testOnly com.example.*Spec

Only the asterisk * is interpreted specially here and not the periods. This will select all tests beginning with com.example. and ending with Spec.

Or just all test Specs:

sbt> testOnly *Spec

testOnly and other testing information is documented here: http://www.scala-sbt.org/release/docs/Detailed-Topics/Testing


You can match on test cases by their name (instead of or in addition to suite class names) by using framework-specific runner arguments. ScalaTest supports a substring match with the -z argument:

> testOnly -- -z insert
> testOnly *TreeSpec -- -z insert

This runs all tests with "insert" in their name, then only the matching cases within suites ending in TreeSpec, as you would intuit. You can also use -n TagName and -l TagName to include or exclude, respectively, tags from ScalaTest's tagging support, and -t to match an exact test name.

Specs2 supports full Java regular expressions with an -ex argument:

> testOnly -- -ex ".*someRexExp.*"

-include and -exclude support Spec2's tagging features.

See the inline links for full lists of arguments that the runners support. These appear to only work with the testOnly sbt command and not test.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜