テストを再定義して、構成からテスト スイートにいくつかの引数を提供します。
これは私の Build.scala からの抜粋です。
object Build extends Build {
lazy val myProject = (project in file("my_project")).settings(
test in Test := myProjectTest.value
)
val myProjectTest = Def.task {
(testOnly in Test).toTask(" tests.Suites -- " +
s"-Ddbserver=localhost " +
s"-Ddbport=3306 ").value
}
}
これは正常に動作します。
ここで、テスト スイートに次のようなアーティファクトの名前を付けたいと思いました。
val myProjectTest = Def.task {
val art = (Keys.artifactPath in (Compile, packageBin)).value
(testOnly in Test).toTask(" tests.Suites -- " +
s"-Dartifact=${art.getCanonicalPath} " +
s"-Ddbserver=localhost " +
s"-Ddbport=3306").value
}
ただし、次のエラー メッセージが表示されます。
[error] /tmp/aa/project/Build.scala:17: Illegal dynamic reference: art
[error] s"-Dartifact=${art.getCanonicalPath} " +
[error] ^
[error] one error found
[error] (compile:compileIncremental) Compilation failed
SBT の内部構造、マクロ、タスクの依存関係グラフについてある程度の知識があり、スコープを使用していくつかのタスクを解決することさえできました。ここで map または flatMap を使用しようとしまし(Keys.artifactPath in (Compile, packageBin))
たが、望ましい結果を得ることができません。アクセスしようとすると、 が表示され.value
ますIllegal dynamic reference
。
どうか、私を導いてください。task の値を他の task (inputKey) パラメータに渡すだけです。
SBT バージョン: 0.13.5