所以我寫了一個Azure輔助角色和一些單元測試來驗證它是否按預期工作。問題是CloudConfigurationManager.GetSetting總是返回null。CloudConfigurationManager.GetSetting在單元測試中返回空
運行任何單元測試之前,以下WorkerRole方法被稱爲:
public override bool OnStart()
{
string connectionString = CloudConfigurationManager.GetSetting("StorageConnectionString");
var account = CloudStorageAccount.Parse(connectionString);
...
}
我使用Visual Studio的設置GUI實際設置連接字符串屬性(不同的人對本地和雲部署),所以我知道cscfg文件應該是有效的。 這裏的本地ServerAgent的設置是什麼樣子:
<Role name="ServerAgent">
<Instances count="1" />
<ConfigurationSettings>
<Setting name="Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString" value="UseDevelopmentStorage=true" />
<Setting name="StorageConnectionString" value="SUPER SEKRET" />
</ConfigurationSettings>
所以我想的問題是,如何CloudConfigurationManager找到正確的cscfg文件?單元測試項目引用了ServerAgent項目,但ServerAgent項目沒有對CloudService項目進行任何類型的引用。
感謝馬克,我挖出了源代碼,Azure的.NET SDK,你是正確的 - 它最終讀數的配置設置單元測試項目。 至於單元測試v其他 - 你也是對的,但我想確認我沒有犯Azure錯誤。我已經重構了我的代碼,以便Azure相關的所有內容現在都位於可嘲弄的界面之後。 – mamidon