加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

scala – 在sbt中定义自定义配置

发布时间:2020-12-16 09:23:33 所属栏目:安全 来源:网络整理
导读:我想在集成服务器和开发环境中设置另一组运行测试的选项. 我们有这个选项: testOptions := Seq(Tests.Filter(s = Seq("Spec","Unit").exists(s.endsWith(_)))) 如何更改testOptions,因此只有在测试命令带有像teamcity:test这样的范围的前缀时才应用它. 我
我想在集成服务器和开发环境中设置另一组运行测试的选项.

我们有这个选项:

testOptions := Seq(Tests.Filter(s => Seq("Spec","Unit").exists(s.endsWith(_))))

如何更改testOptions,因此只有在测试命令带有像teamcity:test这样的范围的前缀时才应用它.

我希望,testOptions将使用类似的语法进行修改:

testOptions in Teamcity := ...

我也想知道,如何定义自定义范围,最好是简单的* .sbt构建,而不是项目/ * .scala构建.

解决方法

范围可以是项目,配置或任务.在这种情况下,我认为您正在寻找定义自定义配置.

使用itSettings

已经有一个名为IntegrationTest的内置配置.您可以通过编写以下内容在构建定义中定义它:

Defaults.itSettings

这将使用与正常测试完全不同的设置,包括测试代码(进入src / it / scala /)和库,因此这可能不是您想要的.

定义您自己的配置

使用sbt 0.13,您可以在build.sbt中定义自定义配置,如下所示:

val TeamCity = config("teamcity") extend(Test)

val root = project.in(file(".")).
  configs(TeamCity).
  settings(/* your stuff here */,...)

定义团队城市:测试

现在你必须弄清楚如何定义teamcity:test.

编辑:马克哈拉斯向我指出,这里有一份文件.见Additional test configurations with shared sources.

An alternative to adding separate sets of test sources (and compilations) is to share sources. In this approach,the sources are compiled together using the same classpath and are packaged together.

把它们放在一起

val TeamCity = config("teamcity") extend(Test)

val root = project.in(file(".")).
  configs(TeamCity).
  settings( 
    name := "helloworld",libraryDependencies ++= Seq(
      "org.specs2" %% "specs2" % "2.2" % "test"
    )
  ).
  settings(inConfig(TeamCity)(Defaults.testTasks ++ Seq(
    testOptions := Seq(Tests.Argument("nocolor"))
  )): _*)

运行teamcity时:测试Specs2输出显示没有颜色.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读