Azure的单元测试代码

Ste*_*eve 4 c# unit-testing azure

我有一个Azure应用程序,最近在应用程序设置上进行了操作.我意识到将几乎所有我需要的设置放入ServiceConfiguration中是显而易见的方法,可以选择任何你甚至可以远程想要改变的东西; 这意味着Web服务URL,smtp主机信息等都在我的ServiceConfiguration中.

想象一下,当我做出改变之后,我试图运行200多个单元测试,但直接发现这个错误时,我感到很惊讶:

调用RoleEnvironment.GetConfigurationSettingValue("MYKEY")时为什么会出现SEHException?

显然,我在这里有几个选择......

- 我可以使用RoleEnvironment.IsAvailable()编写我自己的小类来检查我应该从哪里获取设置,如果我不是天蓝色的话,可以从app.config获取它们.

- 我可以将我的应用程序部署到测试环境,只测试面向外部的接口.

但是有"内置"方式吗?是否有任何单元测试框架的更新,可以让我测试正在运行的确切代码(在将运行的环境中以及将部署的设置)?

Rob*_*rch 6

截至2012年6月Azure发布,您可以使用CloudConfigurationManager - 它会检查.cscfg和.csdef文件(如果可用),否则从app.config或Web.config的appSettings部分读取:

<configuration>
  <appSettings>
    <add key="Foo" value="Bar" />
  </appSettings>
</configuration>
Run Code Online (Sandbox Code Playgroud)

然后在代码中:

CloudConfigurationManager.GetSetting("Foo")
Run Code Online (Sandbox Code Playgroud)