テスト構成を拡張するためにデフォルトの「it」構成を「オーバーライド」する次の sbt プラグイン定義を検討してください (理由はHow to make "test" classes available in the "it" (integration test) configuration?で説明されています) 。
import sbt._
import Keys._
object MyPlugin extends AutoPlugin {
private lazy val IntegrationTest = config("it") extend(Test)
override def projectSettings: Seq[Setting[_]] = Seq(
...
) ++ inConfig(IntegrationTest)(Defaults.itSettings)
override def projectConfigurations: Seq[Configuration] = IntegrationTest :: Nil
}
これは一般的に機能しているように見えますが、実行タスクを「マスク」します。上記のプラグインを使用するプロジェクトからの次の sbt 出力を参照してください。
[myproject] $ inspect run
[info] Input task: Unit
[info] Description:
[info] Runs a main class, passing along arguments provided on the command
line.
[info] Provided by:
[info] {file://myproject/}myproject/it:run
[info] Defined at:
[info] (sbt.Defaults) Defaults.scala:307
...
compile: runの代わりにit:runに注意してください。どういうわけか、「it」構成の再定義は、実行タスクを再定義/マスクするようです。たとえば、「それ」ではなく「楽しい」を選択した場合、これは起こりません。私はsbt 0.13.15を使用しています。
ここで何が起こっているのか、実行タスクがマスクされないようにする方法はありますか?