簡體   English   中英

在本地以及作為VSTS構建的一部分運行帶有可配置變量的C#集成測試

[英]Run C# integration tests with a configurable variable locally and as a part of a VSTS build

我的解決方案中有一個測試項目,可以在實時sql數據庫上運行測試。 問題是我必須提供連接字符串才能將其連接到數據庫。

無論如何,我可以提供Visual Studio Online Build Parameters / Variables中指定的其他連接字符串嗎? 我已經考慮過創建一個appsettings.json文件,但是我仍然不確定如何覆蓋appsettings.json中的值。

請注意,我的測試項目正在測試EF Core SqlServer。

正確執行appsettings.jsonconfig文件。 您還需要的是Tokenizer構建任務,該任務將用VSO變量的值替換連接字符串。

在配置文件( appsettings.json )中,為連接字符串屬性提供值__SQLConnectionString__ 然后,在build VSO變量中,添加一個名稱為SQLConnectionString的變量。 無論您為此變量提供什么值,Tokenizer任務都會用該值替換__SQLConnectionString__

為了使這個工作。 我添加了一個appsettings.json文件,並將屬性復制到輸出目錄更改為復制始終 然后,我使用設置方法將名為DbTests的抽象類

appsettings.json

{
  "ConnectionStrings": {
    "TestDatabase": "YOUR CONNECTION STRING GOES HERE"
  }
}

DbTests.cs摘要

// ...

IConfigurationRoot configurationRoot = new ConfigurationBuilder()
    .AddJsonFile("appsettings.json")
    .AddEnvironmentVariables()  // <== this is important
    .Build();

string connectionString = configurationRoot.GetConnectionString("TestDatabase")

// ...

.AddEnvironmentVariables()允許我使用環境變量覆蓋appsettings.json包含的變量。 我可以在VSTS中設置環境變量

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM