首页 > 解决方案 > 每次运行测试时如何使用时间戳创建新的测试报告目录并使用 scalatest 和 sbt 保留旧的测试报告

问题描述

我正在使用 scalatest 运行一些测试。现在,每次我运行测试时,测试结果都会以target/test-reports覆盖以前的测试结果的方式存储。我想将结果存储在文件夹名称中带有时间戳的新文件夹中。就像在target/test-reports/dd-mm-yy-hhmmss文件夹中一样,并保持旧结果不变。如何在 build.sbt 中获取时间戳并使用它来制作文件夹名称。

目前我的 build.sbt 看起来像这样:

testOptions in Test ++= Seq(Tests.Argument(TestFrameworks.ScalaTest, "-o"), Tests.Argument(TestFrameworks.ScalaTest, "-h", "target/test-reports"))

请建议如何获取时间戳并将其用于文件夹名称。

标签: scalasbtscalatest

解决方案


尝试

libraryDependencies += "org.pegdown" % "pegdown" % "1.6.0",
testOptions in Test ++= Seq(
  Tests.Argument(TestFrameworks.ScalaTest, "-o"), 
  Tests.Argument(TestFrameworks.ScalaTest, "-h", s"target/test-reports-$testDirTimestamp")
)

def testDirTimestamp = {
  import java.time.LocalDateTime
  import java.time.format.DateTimeFormatter
  LocalDateTime.now.format(DateTimeFormatter.ofPattern("yyyy-MM-ddHHmmss"))
}

执行后sbt test应在下创建报告

target/test-reports-2019-07-02074159

推荐阅读