![](/img/trans.png)
[英]Integration tests pass locally but fail on Azure Devops with 400 Bad Request - Invalid Hostname 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.json
或config
文件。 您還需要的是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.