运行 来自单个 spec2s parent 规范的 specs2 规范列表

Running list of specs2 specifications from a single spec2s parent specification

我目前正在开发基于 maven 的 scala 项目,其中包含一系列 specs2 规范测试,并且我正在使用 Intellij 2020.2 和 scala 2.12.10 以及 specs2 版本 4.9.4

我能够 运行 每个规范都没有问题,但是我有问题 运行 使用 IntelliJ 依次使用 beforeAll 和 afterAll 进行所有测试似乎没有按预期工作(但在 运行个人)。

我正在考虑创建一个 parent 规范,它创建一个包含所有 children 规范的列表,然后执行它们 - 希望这样我有更多的控制权。

我的 'children' 规范使用 mutable.Specification 并沿用了:

class BookmarkSpecs2(implicit ec: ExecutionEnv) extends Specification
    with BeforeAfterAll
    with Matchers
    with FutureMatchers
    with EmbedMongod {

    val prefix = "mongodb"
    val database = "bcTest"
    val domain = "localhost"
    val port = 12340

sequential

    "Update items" should {
        "adding" in {
...
        }
    }

注意包含 class 的变量 (implicit ec: ExecutionEnv)

对于我的 parent 规范,我一直在尝试:

import org.specs2.Specification
import org.specs2.concurrent.ExecutionEnv
import org.specs2.specification.core.SpecStructure

class AllTestsSpecs2(implicit ec: ExecutionEnv) extends Specification {

  def is: SpecStructure =  sequential ^ s2"""
    ${"bookmark"  ~ bm}
  """
  def bm = new BookmarkSpecs2()
}

通过 IntelliJ 执行规范时显示:

Testing started at 10:36 AM ...
/opt/jdk/jdk8u265-b01/bin/java -javaagent:/home/colinbester/Projects/idea-IC-202.6397.94/lib/idea_rt.jar=46535:/home/colinbester/Projects/idea-IC-202.6397.94/bin -Dfile.encoding=UTF-8 -classpath ... org.jetbrains.plugins.scala.testingSupport.specs2.Specs2Runner -s com.besterdesigns.bc.rest.AllTestsSpecs2 -showProgressMessages true


Process finished with exit code 0

实际上 运行 没有任何 children 测试。

很确定我在这里遗漏了一些东西,希望能在正确的方向上轻推。

链接规范可以通过传递 all 参数来执行(可用参数列表可用 here)。

在 IntelliJ specs2 中,属性需要指定为 Java 系统属性,因此您需要在 IntelliJ 运行 配置中指定 -Dspecs2.all