且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

仅从 sbt 运行特定的 Scalatest 测试

更新时间:2023-11-18 14:10:10

对于一般的解决方案,我们需要等待 sbt#911,但显然 ScalaTest 2.1.3支持运行特定测试.Seth 说:

ScalaTest 2.1.3 现在支持:

test-only *MySuite -- -z foo

仅运行名称包含子字符串foo"的测试.对于精确匹配而不是子字符串,使用 -t 而不是 -z.

sbt's test-only command can be used to run the tests found in a specific test class. With JUnit tests you can use test-only to run specific methods on a test class e.g. test-only mypackage.MyTestClass.test1Equals1 to run just that method.

Is such a thing possible with scalatest's more free-form test syntax, presumably by working out the name it uses internally to reference a specific test? If it isn't possible in FreeSpec (which is easy to imagine given its nature) is there a way to do it with a simpler testing approach like FunSuite?

For a general solution we need to wait for sbt#911, but apparently ScalaTest 2.1.3 has a support for running a specific test. Seth says:

This is now supported in ScalaTest 2.1.3 with:

test-only *MySuite -- -z foo

to run only the tests whose name includes the substring "foo". For exact match rather than substring, use -t instead of -z.