2013-03-14 17 views
5

sbtでテストを実行するカスタムテスト設定を定義する必要がありますが、特別な設定が必要です。私はこれを行う方法を見つけようとしているのを見回してきましたが、それを正しくすることはできません。sbtでカスタムテスト設定を定義する

普通のテストタスクを実行する> testとテストと全く同じ> pipelinetestは、(javaOptions += "-Dpipeline.run=run"のみで、このようなものです。

私はこのように、テストのためのjavaOptionsを設定する方法を考え出した:javaOptions in pipelinetest += "-Dpipeline.run=run"

がどのように私は、この目標を達成するためにpipelinetestを定義します javaOptions in test += "-Dpipeline.run=run"はそう私は何をできるようにしたいと思いますが、このですか?これは新しい仕事である必要がありますか?または、これはtestの設定になりますか?私は非常にsbtに新しく、これは現時点では非常に混乱しており、ドキュメントを読むことは役に立たなかったので、どんな助けも大歓迎です。

+2

http://www.scala-sbt.org/release/docs/Detailed-Topics/Testing.htmlを参照してください。特に、追加のテスト設定と共有ソースのセクションを参照してください。 –

答えて

0

私は部分的な回答しかありませんが、これは有用な情報だと思いました。私はSparkのビルドビルドに似たようなことをやろうとしていました。デバッガでテストを実行する方法が必要でした。 Mark Harrahのコメントは正しい方向に私を指摘しました。 change I made was

lazy val TestDebug = config("testDebug") extend(Test) ... baseProject .configs(TestDebug) .settings(inConfig(TestDebug)(Defaults.testTasks): _*) .settings(Seq( javaOptions in TestDebug ++= "-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5005" .split(" ").toSeq))

これだけなどtestの私の通常の呼び出し、testOnlyを、左が、今私はまた、上記で定義された追加オプションを使用するtestDebug:testOnly ...を、実行することができます。 (おそらくtestDebug:testなどを作成してこれらの余分なオプションは役に立ちませんが、これは役に立ちませんが、うまくいきません)

私はこのことを本当に理解できませんでしたが、 inConfig(TestDebug)(Defaults.testSettings)の代わりにinConfig(TestDebug)(Defaults.testTasks)を使用してください。

私の場合は、(a)マルチプロジェクトビルドのためにそれを稼働させる方法と、(b)ビルドがPOMファイルに基づくより奇妙なb/cであることがわかりました。プロジェクト定義はすべての例とは異なります。

いつものように、sbtに関する私の問題は、私が関連していると思われる情報を見つけることですが、私のビルドには珍しい側面があります。私は、徹底的な理解なしに、例を変更するのは難しいという些細な変更が必要なように思えますが。

関連する問題