如何从 sbt 命令行为 scalatest 设置系统 属性
How to set System property for a scalatest from sbt command line
ScalaTest 套件正在使用
System.getProperty("my.command-line.property")
实现这个设置的sbt命令行是什么?
我试过了
SBT_OPTS="-Dmy.command-line.property=foo" sbt "test-only <path to test suite"
还有:
JAVA_OPTS="-J-Dmy.command-line.property=foo" sbt "test-only <path to test suite"
最后:
sbt/sbt '; set javaOptions in Test +="-Dtest.num.points=500000"; \
project mllib; test-only org.apache.spark.mllib.optimization.LBFGSSuite'
当使用任何这些尝试时,System.getProperty 出现空白。
工作的一种方法是 运行 来自 Intellij 的 ScalaTest 并将 JVM 参数设置为 -Dmy.command-line.property=foo 在 运行 配置中。
将此添加到您的项目设置中:
javaOptions in Test += "-Dmy.command-line.property=foo"
如果您有很多设置,您可以将它们放在一个配置文件中并像这样传递:
javaOptions in Test += "-Dconfig.file=conf/test.conf"
编辑: 从命令行传递它:
我猜你是在寻找这个答案:How to set system properties for runMain on command line?
编辑 2:
你试过这个吗?
某人';设置 javaOptions += "-Dconfig.resource=../application.conf" ;测试'
这对我有用:
val myFoo = sys.props("foo.property")
和:
SBT_OPTS="-Dfoo.property=foo" sbt "testOnly *your_test_package*"
您的第三种方法几乎 有效(如果设置了fork in Test := true
)。但是你得先换成项目:
sbt/sbt '; project mllib; set javaOptions in Test +="-Dtest.num.points=500000"; \
test-only org.apache.spark.mllib.optimization.LBFGSSuite'
对于某些套件,您可以覆盖 beforeAll()
挂钩并在那里进行初始化。这并不能保证此初始化将 运行 在任何 Spark 初始化之前,但它确实使它在许多情况下足够早。
override def beforeAll() {
super.beforeAll()
System.setProperty("java.io.tmpdir", "C:\dev\Temp")
}
ScalaTest 套件正在使用
System.getProperty("my.command-line.property")
实现这个设置的sbt命令行是什么?
我试过了
SBT_OPTS="-Dmy.command-line.property=foo" sbt "test-only <path to test suite"
还有:
JAVA_OPTS="-J-Dmy.command-line.property=foo" sbt "test-only <path to test suite"
最后:
sbt/sbt '; set javaOptions in Test +="-Dtest.num.points=500000"; \
project mllib; test-only org.apache.spark.mllib.optimization.LBFGSSuite'
当使用任何这些尝试时,System.getProperty 出现空白。
工作的一种方法是 运行 来自 Intellij 的 ScalaTest 并将 JVM 参数设置为 -Dmy.command-line.property=foo 在 运行 配置中。
将此添加到您的项目设置中:
javaOptions in Test += "-Dmy.command-line.property=foo"
如果您有很多设置,您可以将它们放在一个配置文件中并像这样传递:
javaOptions in Test += "-Dconfig.file=conf/test.conf"
编辑: 从命令行传递它: 我猜你是在寻找这个答案:How to set system properties for runMain on command line?
编辑 2: 你试过这个吗? 某人';设置 javaOptions += "-Dconfig.resource=../application.conf" ;测试'
这对我有用:
val myFoo = sys.props("foo.property")
和:
SBT_OPTS="-Dfoo.property=foo" sbt "testOnly *your_test_package*"
您的第三种方法几乎 有效(如果设置了fork in Test := true
)。但是你得先换成项目:
sbt/sbt '; project mllib; set javaOptions in Test +="-Dtest.num.points=500000"; \
test-only org.apache.spark.mllib.optimization.LBFGSSuite'
对于某些套件,您可以覆盖 beforeAll()
挂钩并在那里进行初始化。这并不能保证此初始化将 运行 在任何 Spark 初始化之前,但它确实使它在许多情况下足够早。
override def beforeAll() {
super.beforeAll()
System.setProperty("java.io.tmpdir", "C:\dev\Temp")
}