我知道,一个单一的测试可以通过运行,在SBT跑出,ScalaTest in sbt:有没有一种方法可以在没有标签的情况下运行单个测试?
test-only *class -- -n Tag
有没有告诉SBT/scalatest运行而不需要标记单个测试的方法吗?例如:
test-only *class -- -X 2
这意味着“在课堂上进行第二次测试,不管它是什么”。我们有一堆测试,没有人打扰它们,所以有没有办法在没有标签的情况下运行单个测试?
我知道,一个单一的测试可以通过运行,在SBT跑出,ScalaTest in sbt:有没有一种方法可以在没有标签的情况下运行单个测试?
test-only *class -- -n Tag
有没有告诉SBT/scalatest运行而不需要标记单个测试的方法吗?例如:
test-only *class -- -X 2
这意味着“在课堂上进行第二次测试,不管它是什么”。我们有一堆测试,没有人打扰它们,所以有没有办法在没有标签的情况下运行单个测试?
我没有看到在测试类中运行单个未标记测试的方法,但我提供了我的工作流程,因为它似乎对遇到此问题的任何人都有用。
从SBT会话中:
test:test-only *YourTestClass
(星号是一个通配符,可以指定完整路径com.example.specs.YourTestClass
)
该测试类中的所有测试将被执行。想必你最关心的是失败的测试,所以纠正任何失败的实现,然后运行:
test:test-quick
...这将只执行失败的测试。 (在这种情况下重复最近执行的test:test-only
命令将与test:test-quick
相同,但是如果将测试方法分解为相应的测试类,则可以使用通配符使test:test-quick
成为重新运行失败测试的更有效方法。)
请注意,ScalaTest中测试的术语是测试类,而不是特定的测试方法,因此所有未标记的方法都会执行。
如果在测试类中有太多的测试方法,请将它们分成不同的类或适当标记它们。 (这可能是一个信号,即被测类是违反single responsibility principle和可以使用的重构。)
谁正面临“未执行测试”:'* YourTestClass'必须是类名称。不是文件名。 – MKatleast3
@ MKatleast3我可以upvote你100次 – dangonfast
你的主题说:“Scalatest-SBT”。当sbt被连字符连接时,人们通常会想到一个插件。但是,为了澄清一下,你正在讨论如何使用[ScalaTest](http://www.scalatest.org/)从sbt 0.12这样的现代版本,而不是[joshcough/scalatest-sbt](https:// github.com/joshcough/scalatest-sbt)为4年前写的sbt 0.5.2-p3插件。正确? –
正确。这是一个古老的问题,我从那时起就知道没有,这是不可能的(据我所知)。如果有人确实设法找出了方法,我还没有关闭它,但我不再需要这样做来回答。 – Nacht
https://groups.google.com/forum/#!topic/scalatest-users/1oRMkudFAXM上有一个帖子(来自Bill Venners和Mark Harrah的参与),但还没有解决方案 –