如何在scalatest中访问配置映射值?

时间:2016-06-16 16:31:07

标签: scala command-line-arguments scalatest

这种情况 - 我使用的是scalatest,我有一个涉及使用数据库的测试。在本地测试时,数据库主机是一个值,当在我的测试服务器(jenkins)上进行测试时,数据库主机是另一个值。我希望能够在调用sbt test时将主机指定为命令行参数。

看起来scalatest允许您传入命令行参数,然后将其存储在配置映射中。我不清楚的是我究竟如何从测试中访问此配置映射值。

1 个答案:

答案 0 :(得分:1)

使用withFixture(OneArgTest)(我建议您阅读本文档的其他部分)。稍微适应您的用例(示例使用FlatSpec,但其他测试样式基本相同):

class ExampleSpec extends fixture.FlatSpec {

  type FixtureParam = DbConnection

  def withFixture(test: OneArgTest) = {
    val dbUrl = test.configMap.getRequired("dbUrl")
    val dbConnection = // use dbUrl

    try {
      withFixture(test.toNoArgTest(dbConnection))
    }
    finally dbConnection.close()
  }

  "Testing" should "be easy" in { dbConnection =>
    assert(dbConnection.isOpen)
  }