Как создавать новый каталог отчетов о тестах с отметкой времени каждый раз, когда я запускаю тест, и сохраняю старые отчеты о тестах, используя scalatest и sbt - PullRequest
2 голосов
/ 02 июля 2019

Я использую 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"))

Пожалуйста, предложите, как получить метку времении используйте его в имени папки.

Ответы [ 2 ]

1 голос
/ 02 июля 2019

Попробуйте

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
0 голосов
/ 02 июля 2019

Я понял это. Мы можем использовать переменные в 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, чего я раньше не делал.

...