您可以在一行中要求整个工具包
//> using toolkit latest
MUnit 作为测试框架,仅在测试文件中可用:test
目录中的文件或具有 .test.scala
扩展名的文件。请参阅 Scala CLI 文档 以了解有关测试范围的更多信息。
或者,您只需要求特定版本的 MUnit
//> using dep org.scalameta::munit:1.0.0-M7
在您的 build.sbt 文件中,您可以添加对 toolkit-test 的依赖
lazy val example = project.in(file("example"))
.settings(
scalaVersion := "3.2.2",
libraryDependencies += "org.scala-lang" %% "toolkit-test" % "0.1.7" % Test
)
此处,Test
配置表示该依赖项仅由 example/src/test
中的源文件使用。
或者,您只需要求特定版本的 MUnit
libraryDependencies += "org.scalameta" %% "munit" % "1.0.0-M7" % Test
在 build.sc 文件中,你可以添加一个 test
对象,该对象扩展 Tests
和 TestModule.Munit
object example extends ScalaModule {
def scalaVersion = "3.2.2"
object test extends Tests with TestModule.Munit {
def ivyDeps =
Agg(
ivy"org.scala-lang::toolkit-test:0.1.7"
)
}
}
或者,您只需要求特定版本的 MUnit
ivy"org.scalameta::munit:1.0.0-M7"
运行单个测试套件
要使用 Scala CLI 运行单个 example.MyTests
套件,请使用 test
命令的 --test-only
选项。
scala-cli test example --test-only example.MyTests
要在 sbt 中运行单个 example.MyTests
套件,请使用 testOnly
任务
sbt:example> example/testOnly example.MyTests
要在 Mill 中运行单个 example.MyTests
套件,请使用 testOnly
任务
./mill example.test.testOnly example.MyTests
在测试套件中运行单个测试
在测试套件文件中,你可以通过暂时附加 .only
来选择要运行的单个测试,例如
class MathSuite extends munit.FunSuite {
test("addition") {
assert(1 + 1 == 2)
}
test("multiplication".only) {
assert(3 * 7 == 21)
}
}
class MathSuite extends munit.FunSuite:
test("addition") {
assert(1 + 1 == 2)
}
test("multiplication".only) {
assert(3 * 7 == 21)
}
在以上示例中,仅会运行 "multiplication"
测试(即忽略 "addition"
)。这有助于快速调试套件中的特定测试。
备选方法:排除特定测试
你可以通过将 .ignore
附加到测试名称来排除特定测试的运行。例如,以下示例忽略 "addition"
测试,并运行所有其他测试
class MathSuite extends munit.FunSuite {
test("addition".ignore) {
assert(1 + 1 == 2)
}
test("multiplication") {
assert(3 * 7 == 21)
}
test("remainder") {
assert(13 % 5 == 3)
}
}
class MathSuite extends munit.FunSuite:
test("addition".ignore) {
assert(1 + 1 == 2)
}
test("multiplication") {
assert(3 * 7 == 21)
}
test("remainder") {
assert(13 % 5 == 3)
}
使用标签对测试进行分组,并运行特定标签
MUnit 允许你按标签对跨套件的测试进行分组和运行,标签是文本标签。MUnit 文档 提供了有关如何执行此操作的说明。