Scala.js birim testinde, test verilerini test/resources
'da bulunan bir dosyadan yüklemek için en kolay çözüm hangisidir?Birim testi Scala.js: 'Test/resources' içinde bulunan dosyadan test verilerini oku Okuma
11
A
cevap
2
En azından son Scala.js (test edilen 0.6.14 ve 0.6.15) ve Node.js (7.8.0 test edilmiş) ile durumun basit olduğu ortaya çıkıyor. Testler varsayılan olarak Node runner kullanılarak çalıştırıldığı için, Node.js sync dosya işlemlerini kullanabilir ve dosyayı fs readFileSync kullanarak okuyabilir. dosyalar SBT yapı tarafından oraya kopyalandığı olarak yerine src/test/resources
bunları doğrudan yüklenmesi
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")
, bir de target/scala-2.12/test-classes
onları yükleyebilir: Bu işleme bir fonksiyon benzeyebilir. Bu yolu nasıl elde edeceğimi basit bir API bulabilirsem, rscPath
işlevinde kodlanmış olması gerekmez.
Burada biraz sorun, 'fs' işlemleri eşzamansızdır, ancak sınama çerçevesi tarafından bilinen bir" ExecutionContext "üzerinde yürütülmezler. Sadece bir Sözün Geleceğinin Oluşturulması işe yaramaz - bkz. [ScalaTest issue # 1039] (https://github.com/scalatest/scalatest/issues/1039) – Suma
http://stackoverflow.com/questions/40291805/ kopyası nasıl-oku-a-kaynak-dosya-in-scala-js? – Rich
@Rich Benzer, ancak testler uyumsuzluk işlemlerinin ele alınmasıyla ilgili belirli konuları getirir. – Suma