你可以在一行中要求整个工具包
//> 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 文件中,你可以添加一个扩展 Tests
和 TestModule.Munit
的 test
对象
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"
添加线索以获得更好的错误报告
在 assert
中使用 clue
以在断言失败时获得更好的错误报告。
assert(clue(List(a).head) > clue(b))
// munit.FailException: assertion failed
// Clues {
// List(a).head: Int = 1
// b: Int = 2
// }
在 MUnit 文档 中了解有关线索的更多信息。
编写特定于环境的测试
使用 assume
编写特定于环境的测试。 assume
可以包含布尔条件。您可以检查操作系统、Java 版本、Java 属性、环境变量或任何其他内容。如果某个假设未得到满足,则会跳过测试。
import scala.util.Properties
test("home directory") {
assume(Properties.isLinux, "this test runs only on Linux")
assert(os.home.toString.startsWith("/home/"))
}
import scala.util.Properties
test("home directory") {
assume(Properties.isLinux, "this test runs only on Linux")
assert(os.home.toString.startsWith("/home/"))
}
在 MUnit 文档 中了解有关筛选测试的更多信息。
标记不稳定的测试
您可以使用 flaky
标记测试以将其标记为不稳定。通过将 MUNIT_FLAKY_OK
环境变量设置为 true
,可以跳过不稳定的测试。
test("requests".flaky) {
// I/O heavy tests that sometimes fail
}
test("requests".flaky) {
// I/O heavy tests that sometimes fail
}
在 MUnit 文档 中了解有关不稳定测试的更多信息