0

テスト構成を拡張するためにデフォルトの「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を使用しています。

ここで何が起こっているのか、実行タスクがマスクされないようにする方法はありますか?

4

1 に答える 1