Подтвердить что ты не робот

Тестирование модулей Scala.js: чтение тестовых данных из файла, находящегося в `test/resources`

В Scala.js unit test, что является самым простым решением для загрузки тестовых данных из файла, находящегося в test/resources?

4b9b3361

Ответ 1

Получается, по крайней мере, с недавними Scala.js(0,6.14 и 0,6.15) и Node.js(тест 7.8.0), ситуация проста. Поскольку тесты выполняются с использованием Node runner по умолчанию, можно использовать операции с файлами Node.js sync и читать файл с помощью fs readFileSync, Функция, обрабатывающая это, может выглядеть так:

  def rscPath(path: String): String = "src/test/resources/" + path

  def rsc(path: String): String = {
    import scalajs.js.Dynamic.{global => g}
    val fs = g.require("fs")

    def readFile(name: String): String = {
      fs.readFileSync(name).toString
    }

    readFile(rscPath(path))
  }

  val testInput = rsc("package/test-input.txt")

Вместо того, чтобы загружать их непосредственно из src/test/resources, можно также загрузить их из target/scala-2.12/test-classes, поскольку файлы копируются там с помощью сборки SBT. Я думаю, что я предпочел бы это, если бы мог найти какой-то простой API, как получить этот путь, так что он не должен быть жестко запрограммирован в функции rscPath.