我需要测试派生JVM进程的代码,为此,我需要访问test:fullClasspath,或者让测试依赖于package并使用带有fat jar的类路径。
后一种选择非常繁琐、缓慢,而且不包含任何测试二进制文件。对于前一种解决方案,我不知道如何访问test:fullClasspath。无论我是在当前的JVM中运行测试,还是作为派生进程运行测试,System.getProperty("java.class.path")总是给我/opt/sbt/bin/sbt-launch.jar。
有什么建议吗?
发布于 2017-08-24 15:17:47
如果您从SBT运行,只要您指示SBT在运行时派生您的应用程序,这似乎就能正常工作。这就是我所拥有的:
项目:
<project root>
- build.sbt
- src
- test
- scala
- test.scala在build.sbt中
fork := true在test.scala中
object Test extends App {
println(System.getProperty("java.class.path"))
}然后从<project root>运行:
sbt test:run然后它会打印:
/Users/username/projects/tmp/scala/target/scala-2.11/test-classes:/Users/username/projects/tmp/scala/target/scala-2.11/classes:/Users/username/.ivy2/cache/org.scala-lang/scala-library/jars/scala-library-2.11.11.jar似乎类路径的第一部分,也就是/Users/username/projects/tmp/scala/target/scala-2.11/test-classes,就是你要找的,对吧?
https://stackoverflow.com/questions/45848935
复制相似问题