2014-03-05 107 views
12

sbttest-only命令可用于运行在特定测试类中找到的测试。使用JUnit测试,您可以使用test-only在测试类中运行特定的方法,例如test-only mypackage.MyTestClass.test1Equals1只能运行该方法。仅运行sbt的特定scalatest测试

scalatest更自由形式的测试语法可能是这样的事情,大概是通过计算它在内部引用特定测试的名称?如果在FreeSpec(根据其性质很容易想象)中不可能的话,有没有办法用一个简单的测试方法来做到这一点,如FunSuite

+4

有一个功能可以在sbt上打开。其中一部分涉及我们如何运行指纹测试以及框架集成。它预定为0.13.2,但只是太毛而不能完成。我希望我们有时间在0.13.3。 – jsuereth

+1

谢谢@jsuereth。当它使它成为一个发布放在这里的答案,如果你还记得:-) – adamnfish

+0

@jsuereth,是[这](https://github.com/sbt/sbt/issues/911)你所指的增强? –

回答

9

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

现在,这与支持ScalaTest 2.1.3:

test-only *MySuite -- -z foo 

只运行其名称包含字符串 “foo” 的测试。对于完全匹配而不是子字符串,请使用-t而不是-z

+0

值得注意的是,'sbt'''test-only'将参数传递给底层的测试运行器,'scalatest'现在支持'-z“”'。其他测试框架将采用不同的论点。 – adamnfish

0

运行一个测试:

SBT测试仅com.path.to.UnitTestSpec

运行特定集成测试:

SBT它: test-only com.path.to.IntegrationTestSpec