VSTS Visual Studio集环境变量测试项目

时间:2018-01-23 19:01:32

标签: .net-core environment-variables azure-devops integration-testing azure-pipelines

我正在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的另一边,我试图找到一个构建步骤,将变量设置为那里的连接字符串。我能找到的最好的步骤是"设置变量"。

然而,这对我不起作用。程序将无法识别环境变量中设置的新变量的名称,以启动。

2 个答案:

答案 0 :(得分:1)

您需要在“变量”选项卡中添加VSTS变量。

另一种选择是使用Powershell设置它们,如果你想使用Powershell脚本任务以动态方式进行设置。

Write-Host "##vso[task.setvariable variable=sauce]crushed tomatoes"

https://docs.microsoft.com/en-us/vsts/build-release/concepts/definitions/release/variables?tabs=powershell

答案 1 :(得分:0)

更好的方法是在构建定义中一起构建,部署和测试,在构建成功后,可以批准pull请求。

这样,您可以在当前版本中使用该变量(可以添加/更新变量,如Marcote所说)

如果必须在单独的构建中进行集成测试,可以在构建拉取请求策略验证中将触发器设置为手动,然后您可以手动排队构建并指定变量的值(检查在队列时间设置构建定义中的变量