在sbt run config中可以轻松传递,例如:
sbt "run -Dlib.lib1.version=2.0.0"
但是当参数传递给sbt test时,类似的事情会失败。例如:
sbt "test -Dlib.lib1.version=2.0.0"
Official document表示sbt test不支持命令行参数:"测试任务不接受命令行参数并运行所有测试"。我想用不同版本的库运行测试,版本在reference.conf中保存为变量,我想在测试期间覆盖此变量,而不是每次都更改reference.conf。
那么,如何使用命令行参数将配置传递给sbt test?
答案 0 :(得分:2)
我认为你可以避免通过配置文件传递库版本,你应该能够通过% "someConfig"
告诉你想要不同的版本,例如:
libraryDependencies += "org.scalatest" %% "scalatest" % "2.2.4" % "test"
libraryDependencies += "org.scalatest" %% "scalatest" % "2.2.6" % "it"
请注意,这些内容不得冲突,您不能拥有lib % "test, it"
和lib % "test"
,因为您会发生冲突。
答案 1 :(得分:1)
$.holdReady(true);
if (localStorage.getItem("theme") !== null) {
$("#link1").attr("href", localStoage.getItem("theme"))
}
$.holdReady(false);
$(function() {
$("select").change(function(e) {
$("#link1").attr("href", this.value);
localStorage.setItem("theme", this.value);
});
});
任务允许您传递命令行参数,并且它们将受到尊重。
e.g。 testOnly
允许我将-oU标志传递给shell中的最新运行器。
理论上,这只允许您将额外的参数传递给特定的测试。但是你可以利用另一个功能来解决这个问题。 testOnly parses wildcards in the test name
因此,您可以使用*通配符匹配每个测试并仍然传递参数
sbt "testOnly MyTest -- -oU"
将*之后的参数传递给测试运行器,并运行每个测试