C# Azure的单元测试代码
我有一个Azure应用程序,最近在应用程序设置上下了很大的功夫。我意识到,将几乎所有我需要的设置都放到服务配置中,这是一种显而易见的方式,可以实现任何你甚至可能远程想要动态更改的东西;这意味着web服务URL、smtp主机信息等都在我的服务配置中 想象一下,当我做了更改后,我试图运行200多个单元测试,却直接遇到了这个错误时,我会有多么惊讶: 显然,我有几个选择 -我可以使用roleenEnvironment.IsAvailable()编写自己的小类,以检查我应该从哪里获取设置,如果我不在azure中,则从app.config获取设置 -我可以将我的应用程序部署到测试环境中,只需测试面向外部的接口C# Azure的单元测试代码,c#,unit-testing,azure,C#,Unit Testing,Azure,我有一个Azure应用程序,最近在应用程序设置上下了很大的功夫。我意识到,将几乎所有我需要的设置都放到服务配置中,这是一种显而易见的方式,可以实现任何你甚至可能远程想要动态更改的东西;这意味着web服务URL、smtp主机信息等都在我的服务配置中 想象一下,当我做了更改后,我试图运行200多个单元测试,却直接遇到了这个错误时,我会有多么惊讶: 显然,我有几个选择 -我可以使用roleenEnvironment.IsAvailable()编写自己的小类,以检查我应该从哪里获取设置,如果我不在az
但是否有一种“内置”方式?单元测试框架是否有任何更新,可以让我测试正在运行的确切代码(在它将运行的环境中,并使用将部署的设置)?据我所知,测试框架中没有内置的方法来测试应该使用哪个版本的配置设置。我正在使用一个像您描述的那样的包装类(我相信您已经知道它很容易编写),但主要是为了我们可以在dev fabric之外运行我们的网站。您可以在测试项目的[Assembly Initialise]上运行模拟器
ProcessStartInfo start = new ProcessStartInfo
{
Arguments = "/devstore:start",
FileName = @"C:\Program Files\Windows Azure Emulator\emulator\csrun.exe"
};
更多信息,这两个链接可能会有所帮助
要测试存储:自2012年6月Azure发行版起,您可以使用-检查.cscfg和.csdef文件(如果可用),否则从app.config或Web.config的appSettings部分读取:
<configuration>
<appSettings>
<add key="Foo" value="Bar" />
</appSettings>
</configuration>
谢谢这也是我得出的结论。谢谢你的确认。这有帮助吗?您可以用这个测试存储:这是一个有趣的想法!谢谢这个问题是很久以前提出来的——因此,我已经为自己找到了一个可以接受的解决方案——但是这对其他人来说可能是很有价值的,他们希望做同样的事情,并且在搜索中遇到这个问题。我认为这是最好的方法
CloudConfigurationManager.GetSetting("Foo")