11
Scala.jsユニットテストでは、test/resources
にあるファイルからテストデータをロードする最も簡単なソリューションは何ですか?ユニットテストScala.js: `test/resources`にあるファイルからテストデータを読み込みます
Scala.jsユニットテストでは、test/resources
にあるファイルからテストデータをロードする最も簡単なソリューションは何ですか?ユニットテストScala.js: `test/resources`にあるファイルからテストデータを読み込みます
最近のScala.js(0.6.14と0.6.15がテスト済み)とNode.js(7.8.0がテスト済み)では、状況は単純です。デフォルトでノードランナーを使用してテストが実行されるので、Node.js同期ファイル操作を使用してfs readFileSyncを使用してファイルを読み取ることができます。ファイルは、SBTのビルドによってそこにコピーされる代わりにsrc/test/resources
から直接それらをロードする
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")
、1もtarget/scala-2.12/test-classes
からそれらを読み込むことができます:これを処理する機能は次のように見ることができます。私はこのパスを取得する方法をいくつか簡単なAPIを見つけることができる場合は、これを好むと思うので、関数でハードコードする必要はありません。
ここで問題となるのは 'fs'操作は非同期ですが、テストフレームワークに知られている' ExecutionContext'では実行されません。プロミスから未来を構築するだけでは機能しません - [ScalaTest issue#1039](https://github.com/scalatest/scalatest/issues/1039) – Suma
複製:http://stackoverflow.com/questions/40291805/どのようにしてリソースファイルを読み込みますか? – Rich
@Richそれと似ていますが、テストでは非同期操作の処理に関する特定の問題があります。 – Suma