- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
因此,我编写了一个 Azure 辅助角色和一些单元测试来验证它是否按预期工作。问题是 CloudConfigurationManager.GetSetting 始终返回 null。
在运行任何单元测试之前调用以下 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 项目。
最佳答案
当测试运行程序执行测试时,它通常在以下任一位置运行测试
这在一定程度上取决于测试运行程序,但使用新的 AppDomain 似乎是当今最常见的方法。
每个新进程或 AppDomain 都有自己的配置设置,这些设置不会成为您的 .cscfg 文件。通常,按照惯例,大多数测试运行程序都会从单元测试项目的 app.config 文件中获取配置设置,因此尝试将配置设置放入 ServerAgent.Tests.app.config。
也就是说,我建议您重构您的被测系统,使其不依赖于配置设置,因为配置设置在测试期间很难改变。
假设您想要测试系统在不同配置值下的行为。如果您使用配置文件,则无法轻松做到这一点。
虽然我意识到 Azure 辅助角色要求有一个具有特定签名的 OnStart
方法,但请将其实现为 Humble Method :
public override bool OnStart()
{
string connectionString =
CloudConfigurationManager.GetSetting("StorageConnectionString");
return OnStartImpl(connectionString);
}
public bool OnStartImpl(string connectionString)
{
// Put all implementation code here
}
然后测试 OnStartImpl
。
顺便说一句,如果您正在运行连接到真实云服务的自动化测试,它们不是单元测试,而是 something else 。虽然我不知道您编写测试的动机,但请考虑编写大部分测试,以便它们不依赖于无关的服务。
关于c# - CloudConfigurationManager.GetSetting 在单元测试中返回 Null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23038148/
我刚刚发现了 CloudConfigurationManager 的一个不起眼但又令人深感沮丧的错误。我正在寻找解决方法,以及(作为旁注)有关报告错误的最佳论坛的提示。我猜这将是一个相对快速的修复。
有谁知道调用 CloudConfigurationManager GetSetting 方法是否会影响性能?例如,它会重新解析 azure 文件还是缓存它?不确定我是否应该添加自己的缓存/静态变量来提
我希望使用 CloudConfigurationManager,以便可以利用 Azure 配置文件。我想使用连接字符串,我在 Cloud.cscfg 中添加了一个字符串来配置 Entity Frame
我正在使用 CloudConfigurationManager 来获取我的连接字符串。我创建了一个*Azure Service Fabric 应用程序。 storageAccount = CloudS
我正在使用 CloudConfigurationManager 来获取我的连接字符串。我创建了一个*Azure Service Fabric 应用程序。 storageAccount = CloudS
有谁知道调用 CloudConfigurationManager GetSetting 方法是否会影响性能?例如,它会重新解析 azure 文件还是缓存它?不确定我是否应该添加自己的缓存/静态变量来提
在 Azure 网站中,我总是使用以下代码从配置的应用程序设置中获取一些值: string property = WebConfigurationManager.AppSettings["proper
我刚刚将项目升级到 Azure Tools 1.8(2012 年 10 月 SDK),但遇到了一个奇怪的问题; 在我的 WorkerRole 中,我调用 CloudConfigurationManag
我创建了一个 Azure 项目并使用以下代码来获取存储连接字符串 CloudConfigurationManager.GetSetting("StorageConnectionString")
因此,我编写了一个 Azure 辅助角色和一些单元测试来验证它是否按预期工作。问题是 CloudConfigurationManager.GetSetting 始终返回 null。 在运行任何单元测试
我目前正在使用CloudConfigurationManager.GetSetting("setting")获取我的应用程序的设置,但它将检查的所有内容的日志写入控制台(在调试和发布中): Getti
我一直在尝试使用以下代码行访问 dotnet core 中的 Azure Blob 存储: CloudStorageAccount account = CloudStorageAccount.Pars
以下说明 here我有: var connectionString = CloudConfigurationManager.GetSetting("StorageConnectionString");
是否存在与以下内容等效的 Python:Microsoft.Azure.CloudConfigurationManager.GetSetting 目前我找到了ServiceConfiguration.
显然Microsoft.WindowsAzure.CloudConfigurationManager.GetSettings首先将查看 ServiceConfiguration.*.cscfg,然后返
有人可以帮我找出 CloudConfigurationManager 存在于 Azure SDK v2.4 中的位置吗? CloudConfigurationManager,在v2.3 SDK中,位于
使用 CloudConfigurationManager,您可以访问应用程序中的 AppSettings,或者如果在 Azure 上下文中运行,则可以访问门户设置(如果其中存在值)。但我还没有看到访问
我有一个包含 WebRole 项目的 Azure 云解决方案。 Windows Azure Tools version: 2.2 WebRole 项目中的packages.config 包含以下内容:
我有一个包含一些 Azure 帮助程序类的库。在这些帮助程序类中,我获取了 Azure 帐户名和 key 等设置。在 Azure 中运行时,这些设置是从云配置文件 (cscfg) 中获取的。这一切都运
我有一个 asp.net 4 应用程序,它工作正常,但我无法让它在 asp.net core 上工作。文档称 GetSetting 会在 web.config 或 app.config 文件中查找。存
我是一名优秀的程序员,十分优秀!