仅从sbt运行特定的ScalateTest测试

仅从sbt运行特定的ScalateTest测试,sbt,scalatest,Sbt,Scalatest,sbt的仅测试命令可用于运行特定测试类中的测试。对于JUnit测试,您可以使用testonly在测试类上运行特定方法,例如testonly mypackage.MyTestClass.test1Equals1仅运行该方法 scalatest更自由的测试语法是否可能实现这一点,可能是通过计算出它在内部用于引用特定测试的名称来实现的?如果在FreeSpec(考虑到它的性质,这很容易想象)中不可能实现,那么有没有一种方法可以使用更简单的测试方法,比如FunSuite?来实现我们需要等待的通用解决方案,

sbt
仅测试
命令可用于运行特定测试类中的测试。对于JUnit测试,您可以使用
testonly
在测试类上运行特定方法,例如
testonly mypackage.MyTestClass.test1Equals1
仅运行该方法


scalatest更自由的测试语法是否可能实现这一点,可能是通过计算出它在内部用于引用特定测试的名称来实现的?如果在
FreeSpec
(考虑到它的性质,这很容易想象)中不可能实现,那么有没有一种方法可以使用更简单的测试方法,比如
FunSuite

来实现我们需要等待的通用解决方案,但显然它支持运行特定的测试。说:

ScalaTest 2.1.3现在支持这一点,包括:

仅运行名称包含子字符串“foo”的测试。要精确匹配而不是子字符串,请使用
-t
而不是
-z

要运行测试,请执行以下操作:

sbt仅测试com.path.to.UnitTestSpec

要运行特定的集成测试,请执行以下操作:

sbt it:仅测试com.path.to.IntegrationTestSpec


在sbt上有一个功能可供使用。这部分涉及如何运行指纹测试和框架集成。它原定于0.13.2,但太多毛,无法完成。我希望我们能在0.13.3有时间。谢谢@jsuereth。当它成为一个发布版时,如果您还记得-)@jsuereth,您所指的增强功能是什么?值得注意的是,
sbt
test only
将参数传递给底层的测试运行程序,
scalatest
现在支持
-z”“
。其他测试框架将采用不同的参数。使用ScalaTest 3.0.5,这似乎已更改为
testOnly
,而不是
testOnly
。虽然此答案没有回答OPs问题,但它是相关的,并显示在搜索结果中。要从终端运行,它是
sbt“testOnly com.path.To.UnitTestSpec”
。引号确保传递参数。
test-only *MySuite -- -z foo