How to execute tests that match a regular expression only?

后端 未结 2 1007
我在风中等你
我在风中等你 2021-01-31 08:26

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 w

相关标签:
2条回答
  • 2021-01-31 08:42

    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 讨论(0)
  • 2021-01-31 08:54

    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

    0 讨论(0)
提交回复
热议问题