Как удалить каталог перед запуском в ScalaTest / sbt / Intellij? - PullRequest
1 голос
/ 09 июля 2020

В настоящее время я использую ScalaTest 3.0.1 для моего проекта Scala 2.11.8 с sbt 0.13.18 в качестве инструмента сборки. IDE - это Intellij.

Это проект Spark, и я использую временный каталог в root/temp/ для контрольных точек и хранения. Когда я запускаю тесты несколько раз, контрольные точки продолжают добавляться, в конечном итоге достигая очень большого размера. Я хочу сохранить контрольные точки после запуска теста, чтобы их можно было использовать для проверки, но я бы хотел удалить их перед следующим запуском.

Как вы можете выполнить sh это с помощью sbt и ScalaTest в Intellij?

Я искал возможность настроить sbt clean с моим временным каталогом в build.sbt, но я не могу заставить его удалить каталог, и, читая документальные подсказки, он будет только удалите файлы, созданные sbt, поэтому я отказался от этой идеи.

В настоящее время я пытаюсь настроить свой ScalaTest на событие BeforeAll, которое удалит каталог, но я не уверен, что это правильный подход, и у меня возникли проблемы с его работой.

1 Ответ

2 голосов
/ 09 июля 2020

На основе { ссылка } clean может включать temp каталог

cleanFiles += baseDirectory.value / "temp"

Другой вариант - создать настраиваемую задачу, которая очищает temp, например, используя better-files

lazy val deleteTestTemp = taskKey[Unit]("Delete test temp directory")
deleteTestTemp := {
  import better.files._
  val temp = (baseDirectory.value / "temp").toScala
  if (temp.exists) temp.delete()
}

где project/plugins.sbt содержит

libraryDependencies += "com.github.pathikrit" %% "better-files" % "3.9.1"

мы могли бы очистить, а затем протестировать так

deleteTestTemp;test
...