Quali versioni stai utilizzando? Questo è sbt .13.
> console
[info] Starting scala interpreter...
[info]
Welcome to Scala version 2.11.0 (OpenJDK 64-Bit Server VM, Java 1.7.0_25).
Type in expressions to have them evaluated.
Type :help for more information.
scala> import javax.script._
import javax.script._
scala> new ScriptEngineManager().getEngineByName("scala")
res0: javax.script.ScriptEngine = [email protected]
scala> new ScriptEngineManager().getEngineByName("rhino")
res1: javax.script.ScriptEngine = com.sun.[email protected]
scala> new ScriptEngineManager().getEngineFactories
res2: java.util.List[javax.script.ScriptEngineFactory] = [[email protected], [email protected]]
Aspetta, ti ha chiesto sul contesto di prova -
Bene, prima ho perso interesse per la decodifica più SBT, aggiungendo al libraryDependencies:
"org.scala-lang" % "scala-compiler" % scalaVersion.value % "test",
consente la localizzazione del motore di script Scala:
@Test def engines: Unit = {
import javax.script._
val all = new ScriptEngineManager().getEngineFactories
Console println s"Found ${all.size}: $all"
assert(all.size > 0)
}
Senza dubbio c'è un modo semplice per aggiungere runtime: full-classpath da testare: f ull-classpath direttamente. Perché è il semplice strumento di costruzione, giusto?
Per Nashorn su Java 8, prendere nota del percorso:
> set fullClasspath in Test += Attributed.blank(file(s"${util.Properties.javaHome}/lib/ext/nashorn.jar"))
[info] Defining test:fullClasspath
[info] The new value will be used by test:console, test:executeTests and 5 others.
[info] Run `last` for details.
[info] Reapplying settings...
[info] Set current project to goofy (in build file:/home/apm/goofy/)
> test
Found 1: [[email protected]]
[info] Passed: Total 10, Failed 0, Errors 0, Passed 10
Aggiornamento: https://github.com/sbt/sbt/issues/1214
anche I guess it's still considered black art:
// Somehow required to get a js engine in tests (https://github.com/sbt/sbt/issues/1214)
fork in Test := true
reso il passaggio di test nell'IDE ma non SBT dalle coperture. Mi chiedo che cosa è diverso. – jonbros
il classpath è molto probabilmente il problema – aepurniet
http://stackoverflow.com/q/10054252/1296806 per la distro-dipendenza del supporto per il rinoceronte. –