В Scala.js unit test, что является самым простым решением для загрузки тестовых данных из файла, находящегося в test/resources
?
Тестирование модулей Scala.js: чтение тестовых данных из файла, находящегося в `test/resources`
Ответ 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
.