我正在使用
ScalaTest集成测试Play Framework应用程序.这个:
org.scalatest.Suites(列表中的规范)
执行规范列表中的每个测试.但是,如何避免每个规范也独立执行?他们被处决了两次.
org.scalatest.Suites(列表中的规范)
执行规范列表中的每个测试.但是,如何避免每个规范也独立执行?他们被处决了两次.
一个例子:
import org.scalatest.{Suites,FreeSpec} class browserSuiteSpec extends Suites(new AnonLoginSpec) class AnonLoginSpec extends FreeSpec { ... }
现在我的AnonLoginSpec执行两次 – 首先作为browserSuiteSpec的一部分,然后独立执行,因为它是一个FreeSpec类. (将AnonLoginSpec更改为特征会导致编译错误.)
将AnonLoginSpec重命名为AnonLoginSpeX没有任何效果 – 它仍然被执行两次.
(我想也许ScalaTest正在寻找“Spec”后缀,我认为Specs2会这样做.)
The documentation没有提到这个问题(据我所知).
解决方法
如果您使用的是ScalaTest 2.0.M5或更高版本,则可以使用
@DoNotDiscover对每个套件进行批注.或者,您可以绕过发现,并通过将-s MainSuite传递给ScalaTest运行程序来指定主套件类名.