【问题标题】:Run sbt integration test with extra settings使用额外设置运行 sbt 集成测试
【发布时间】:2017-04-18 21:53:39
【问题描述】:

我想在 sbt 中使用额外的命令行参数运行集成测试,这取决于 inputKey:

lazy val environmentTest = inputKey[Unit](
  "Run integration tests in a specific environment.")

lazy val environmentFile = Def.setting {
  (_: State) => fileParser(sourceDirectory.value / "it" / "conf")
}

environmentTest := {
  val envSettings = Seq(
    javaOptions in IntegrationTest += s"-Dconfig.file=${environmentFile.parsed.absolutePath}",
    (fork in IntegrationTest) := true
  )
  val projectState = state.value
  val envState = Project.extract(projectState).append(envSettings, projectState)
  Project.extract(envState).runAggregated((test in IntegrationTest), envState)
},

但是,当我运行 environmentTest 输入任务时,没有任何反应。它不运行集成测试。它:测试工作正常。

如何使用依赖于 inputKey 的额外 java 选项运行集成测试?

【问题讨论】:

    标签: scala sbt integration-testing


    【解决方案1】:

    使用 Project.runTask 解决:

    environmentTest := {
      val envSettings = Seq(
        javaOptions in IntegrationTest += s"-Dconfig.file=${environmentFile.parsed.absolutePath}",
        (fork in IntegrationTest) := true
      )
      val envState = Project.extract(state.value).append(envSettings, state.value)
      Project.runTask((test in IntegrationTest), envState)
    },
    

    【讨论】:

      猜你喜欢
      • 2014-03-29
      • 2016-01-02
      • 2012-12-02
      • 2015-03-26
      • 2021-07-18
      • 1970-01-01
      • 2023-03-12
      • 2021-10-24
      • 2017-09-25
      相关资源
      最近更新 更多