我正在Visual Studio(2017)中构建基于VSTS构建并从那里部署的Net Core应用程序的集成测试。我的项目是测试项目,现在我的连接字符串到已部署的API url,数据库是硬编码的,但我想从代码中删除它们并将它们放在添加环境变量的VSTS构建步骤中。
现在,我的Test .cs文件看起来像这样:
[TestClass]
public class TestFeature
{
//Set up variables
private static string _connectionString = "server=localhost;port=5432;database=databaseName;user id=postgres;password=postgres";
[TestInitialize]
public void Initialize()
{
}
//And going into my test methods
}
如何设置我的项目以读取从VSTS上的配置设置的环境变量?
到目前为止为我挖掘的是右键单击在测试项目的属性上,在 Debug 下,设置环境变量具有键和值。
然后我改变我的测试项目以获取GetEnvironmentVariable()
private static string _connectionString = Environment.GetEnvironmentVariable(nameOfVariable);
在VSTS的另一边,我试图找到一个构建步骤,将变量设置为那里的连接字符串。我能找到的最好的步骤是"设置变量"。
然而,这对我不起作用。程序将无法识别环境变量中设置的新变量的名称,以启动。
答案 0 :(得分:1)
您需要在“变量”选项卡中添加VSTS变量。
另一种选择是使用Powershell设置它们,如果你想使用Powershell脚本任务以动态方式进行设置。
Write-Host "##vso[task.setvariable variable=sauce]crushed tomatoes"
答案 1 :(得分:0)
更好的方法是在构建定义中一起构建,部署和测试,在构建成功后,可以批准pull请求。
这样,您可以在当前版本中使用该变量(可以添加/更新变量,如Marcote所说)
如果必须在单独的构建中进行集成测试,可以在构建拉取请求策略验证中将触发器设置为手动,然后您可以手动排队构建并指定变量的值(检查在队列时间设置构建定义中的变量