[英]How to create new test report directory with timestamp every time I run a test and keep the old test reports using scalatest and 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"))
請建議如何獲取時間戳並在文件夾名稱中使用它。
嘗試
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
我已經想通了。 我們可以在 buld.sbt 中使用變量並使用它來構造目錄名稱。
val format = new SimpleDateFormat("dd-MM-yy-hhmmss")
val timeStamp : String = format.format(Calendar.getInstance().getTime())
val resultDirectory : String = "target/test-reports/"+timeStamp
testOptions in Test ++= Seq(Tests.Argument(TestFrameworks.ScalaTest, "-o"), Tests.Argument(TestFrameworks.ScalaTest, "-h", resultDirectory))
libraryDependencies += "org.pegdown" % "pegdown" % "1.6.0" % "test"
我之前試過這個,但沒有用。 原因是每次更改 build.sbt 文件時都需要重新加載 sbt shell,而我之前沒有這樣做。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.