我正在使用 ScalaTest 集成测试 Play Framework 应用程序。这:org.scalatest.Suites(list-of-specifications)
执行规范列表中的每个测试。但是我怎样才能避免每个规范也被独立执行呢?他们被处决了两次。
一个例子:
import org.scalatest.{Suites, FreeSpec}
class BrowserSuiteSpec extends Suites(new AnonLoginSpec)
class AnonLoginSpec extends FreeSpec { ... }
现在我的
AnonLoginSpec
被执行了两次——首先作为 BrowserSuiteSpec 的一部分,然后是独立的,因为它是一个 FreeSpec 类。 (将 AnonLoginSpec
更改为 trait 会导致编译错误。)将
AnonLoginSpec
重命名为 AnonLoginSpeX
没有任何效果——它仍然被执行了两次。(我想也许 ScalaTest 正在寻找“Spec”后缀,我认为 Specs2 确实如此。)
The documentation 没有提到这个问题(据我所知)。
最佳答案
如果您使用 ScalaTest 2.0.M5 或更高版本,您可以使用 @DoNotDiscover 注释每个套件。或者,您可以绕过发现并仅通过将 -s MainSuite 传递给 ScalaTest 运行程序来指定主套件类名称。
关于scala - 当它是 `Suites` 的一部分时,如何避免执行两次 ScalaTest 规范,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14083062/