Visual Studio Team Services构建定义:设置数据库连接字符串

时间:2016-05-31 20:04:07

标签: visual-studio msbuild continuous-integration mstest azure-devops

我们正在使用带有MS SQL服务器的Entity Framework 6进行数据库集成测试(MSTests)。

我正在寻找一种在Visual Studio Team Services(VSTS)构建定义中的Test程序集的app.confing中设置数据库连接字符串的内置方法。

这可以使用构建变量或其他一些整洁的内置方式来完成吗?

考虑了其他选项(未能找到更好的方法):

  1. 使用* .runsettings获取创建新Build
  2. 的连接详细信息
  3. 配置app.config转换(SlowCheetah)

1 个答案:

答案 0 :(得分:1)

一种方法是使用tokenization

为了实现标记化,您可以使用这两种实现中的任何一种

  1. https://github.com/qetza/vsts-replacetokens-task#readme
  2. https://marketplace.visualstudio.com/items?itemName=ms-devlabs.utilitytasks
  3. 如果您决定使用第一个实现,请执行以下步骤

    1. 导航至https://marketplace.visualstudio.com/items?itemName=qetza.replacetokens并将“替换代币”安装到您的构建版本所在的帐户中。

    2. 更新应用程序web.config以便

      的connectionString = “#{即为MyToken}#”

    3. 使用令牌名称向构建定义添加新变量。确保值为PROTECTED

    4. 将会发生的是,构建步骤将使用为构建定义指定的变量值替换所有.config文件标记。很简约。

      请记住,对于没有此任务的状态下的源代码存储库,集成测试可能会失败。这对某些人来说可能很烦人,但如果您使用GIT并使用存储来在本地覆盖令牌进行集成测试,则很容易解决。

      另外,请记住,如果您的SQL数据库(azure)具有防火墙设置,那么由于构建代理虚拟机未经授权,集成测试可能会失败,您可能需要添加新规则以便构建代理已获得授权