我正在使用 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/

10-12 22:40