Sbt-assembly:跳过特定测试



我想配置sbt-assembly跳过一个特定的测试类。

有什么办法可以做到吗?如果有帮助,我使用ScalaTest @Network标签标记测试。

请参阅使用共享源的其他测试配置。这允许您在重用测试源的同时,在FunTest配置中提出可选的"测试"任务。

fun:test使用使用testOptions in FunTest := Seq(Tests.Filter(itFilter))定义的任何过滤器后,您可以重新连接

test in assembly := test in FunTest

Eugene是对的(显然),但这还不够让我让它工作-我有一个build.scala文件。我像这样定义baseSettings:

     val baseSettings = Defaults.defaultSettings ++ 
                        buildSettings ++  
                        Seq(sbt.Keys.test in assembly := {})

您可以用ignore标记您的测试,那么sbt/ScalaTest将不会运行它们。请参阅ScalaTest文档中的标记测试。

为了完整起见,如果您想跳过汇编任务中的所有测试或只运行特定的测试,您可以使用test in assembly := { ... }

自定义它。

根据@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
      )

相关内容

  • 没有找到相关文章

最新更新