6

sbt-assembly特定のテスト クラスをスキップするように構成したいと考えています。

これを行う方法はありますか?それが役立つ場合は、ScalaTest@Networkタグを使用してテストにタグを付けました。

4

4 に答える 4

6

共有ソースを使用した追加のテスト構成を参照してください。FunTestこれにより、テストソースを再利用しながら、構成で代替の「テスト」タスクを考え出すことができます。

fun:test使用して定義したフィルターを使用しtestOptions in FunTest := Seq(Tests.Filter(itFilter))た後、再配線できます。

test in assembly := test in FunTest
于 2014-03-19T03:20:46.967 に答える
1

Eugene の言うことは (明らかに) 正しいのですが、それを機能させるには十分な情報ではありませんでしたbuild.scala。ファイルがあります。私はbaseSettings次のように定義しています:

     val baseSettings = Defaults.defaultSettings ++ 
                        buildSettings ++  
                        Seq(sbt.Keys.test in assembly := {})
于 2015-01-13T22:52:01.257 に答える
0

テストに でタグ付けするとignore、sbt/ScalaTest はそれらを実行しません。タグ付けテストに関する ScalaTest のドキュメントを参照してください。

完全を期すために、アセンブリタスクのすべてのテストをスキップしたい場合、または特定のテストのみを実行したい場合は、カスタマイズできますtest in assembly := { ... }

于 2014-03-18T16:50:10.790 に答える
0

@eugene-yokata の返信に基づいて、ScalaTest のフラグの使用方法を見つけました。

lazy val UnitTest = config("unit") extend (Test)

lazy val companyApp = (project in file("applications/"))
      .assembly("com.company.app", "app.jar")
      .configs(UnitTest)
      .settings(
        inConfig(UnitTest)(Defaults.testTasks),
        UnitTest / testOptions ++= Seq(
          Tests.Argument(
            TestFrameworks.ScalaTest,
            "-l",
            "com.company.tag.HttpIntegrationTest"
          ),
          Tests.Argument(
            TestFrameworks.ScalaTest,
            "-l",
            "com.company.tag.EsIntegrationTest"
          )
        ),
        test in assembly := (UnitTest / test).value
      )
于 2020-06-25T09:31:16.803 に答える