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

尤金是对的(显然),但这对我来说还不足以让它工作——我有一个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 回答