ScalaTest 相当于 JUnit 的套件?

ScalaTest's equivalent of JUnit's suites?

我是 Scala 新手。来自 Java,我习惯于 group/bundle 我的测试 类 在 (JUnit) 套件中,在分层问题中(套件中的套件)。

我正在寻找 ScalaTest 中的替代方法。

两个FunSpec and FreeSpec allow nesting as much as you want. Examples from http://www.scalatest.org/user_guide/selecting_a_style:

import org.scalatest.FunSpec

class SetSpec extends FunSpec {

  describe("A Set") {
    describe("when empty") {
      it("should have size 0") {
        assert(Set.empty.size == 0)
      }

      it("should produce NoSuchElementException when head is invoked") {
        intercept[NoSuchElementException] {
          Set.empty.head
        }
      }
    }
  }

  // just add more describe calls
}

import org.scalatest.FreeSpec

class SetSpec extends FreeSpec {

  "A Set" - {
    "when empty" - {
      "should have size 0" in {
        assert(Set.empty.size == 0)
      }

      "should produce NoSuchElementException when head is invoked" in {
        intercept[NoSuchElementException] {
          Set.empty.head
        }
      }
    }

    // add more - calls
  }

  // add more - calls
}

任何套件都可以包含嵌套套件。这些是从 nestedSuites 生命周期方法返回的。您可以使用套件 class 来执行此操作:

http://doc.scalatest.org/2.2.4/index.html#org.scalatest.Suites

如果要禁用嵌套套件的发现,可以使用@DoNotDiscover 注释:

http://doc.scalatest.org/2.2.4/index.html#org.scalatest.DoNotDiscover