Azure的单元测试代码

时间:2010-07-20 15:30:00

标签: c# unit-testing azure

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

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

Why am I getting SEHException when calling RoleEnvironment.GetConfigurationSettingValue("MYKEY")?

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

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

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

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

3 个答案:

答案 0 :(得分:6)

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

<configuration>
  <appSettings>
    <add key="Foo" value="Bar" />
  </appSettings>
</configuration>

然后在代码中:

CloudConfigurationManager.GetSetting("Foo")

答案 1 :(得分:2)

答案 2 :(得分:2)

您可以在测试项目的[Assembly Initialise]上运行模拟器。

ProcessStartInfo start = new ProcessStartInfo 
{                                             
    Arguments = "/devstore:start",                                             
    FileName = @"C:\Program Files\Windows Azure Emulator\emulator\csrun.exe"                        
};

更多这两个链接可能有所帮助 http://andrewmatthewthompson.blogspot.nl/2011/12/deploying-packages-to-azure-compute.html

测试存储空间:http://www.neovolve.com/post/2012/01/12/Integration-testing-with-Azure-development-storage.aspx

相关问题