我们正在使用带有MS SQL服务器的Entity Framework 6进行数据库集成测试(MSTests)。
我正在寻找一种在Visual Studio Team Services(VSTS)构建定义中的Test程序集的app.confing中设置数据库连接字符串的内置方法。
这可以使用构建变量或其他一些整洁的内置方式来完成吗?
考虑了其他选项(未能找到更好的方法):
答案 0 :(得分:1)
一种方法是使用tokenization
为了实现标记化,您可以使用这两种实现中的任何一种
如果您决定使用第一个实现,请执行以下步骤
导航至https://marketplace.visualstudio.com/items?itemName=qetza.replacetokens并将“替换代币”安装到您的构建版本所在的帐户中。
更新应用程序web.config以便
的connectionString = “#{即为MyToken}#”
使用令牌名称向构建定义添加新变量。确保值为PROTECTED
将会发生的是,构建步骤将使用为构建定义指定的变量值替换所有.config文件标记。很简约。
请记住,对于没有此任务的状态下的源代码存储库,集成测试可能会失败。这对某些人来说可能很烦人,但如果您使用GIT并使用存储来在本地覆盖令牌进行集成测试,则很容易解决。
另外,请记住,如果您的SQL数据库(azure)具有防火墙设置,那么由于构建代理虚拟机未经授权,集成测试可能会失败,您可能需要添加新规则以便构建代理已获得授权