Umbraco单元测试失败

Umbraco单元测试失败,umbraco,umbraco7,Umbraco,Umbraco7,我试着跟着。我无法使GetRoutingContext方法正常工作,因为Umbraco.Web.Routing.UrlProvider构造函数遇到空引用异常(我以前下载了一个Umbraco 7.0.4安装,并编译了Umbraco.Tests.dll) 当我没有选择时,我决定下载一个新的Umbraco副本,编译并运行一个将执行UrlProvider构造函数的测试。令我惊讶的是,我也得到了空引用异常,很明显,这个错误与我的解决方案无关,而是与Umbraco的解决方案无关 这些图像说明了一切。有人能帮

我试着跟着。我无法使GetRoutingContext方法正常工作,因为Umbraco.Web.Routing.UrlProvider构造函数遇到空引用异常(我以前下载了一个Umbraco 7.0.4安装,并编译了Umbraco.Tests.dll)

当我没有选择时,我决定下载一个新的Umbraco副本,编译并运行一个将执行UrlProvider构造函数的测试。令我惊讶的是,我也得到了空引用异常,很明显,这个错误与我的解决方案无关,而是与Umbraco的解决方案无关

这些图像说明了一切。有人能帮忙吗?这真的是一个bug还是我可以在这里做点什么


检查web.config以查看我正在使用的当前v7站点,Umbraco配置/设置部分的类型为
Umbraco.Core.Configuration.Umbraco设置.Umbraco设置部分

另一个错误是将
用作IUmbracoSettingsSection
。这意味着,如果强制转换失败,您将返回一个空对象,而不是一个异常告诉您强制转换失败—它将以静默方式失败。最好是:

var umbracoSettings = (IUmbracoSettingsSection)ConfigurationManager.GetSection("umbracoConfiguration/settings");
如前所述,我认为您的基本类型是错误的,您应该实际使用:

var umbracoSettings = (Umbraco.Core.Configuration.UmbracoSettings.UmbracoSettingsSection)ConfigurationManager.GetSection("umbracoConfiguration/settings");

这将为您将节转换为正确的类型。

问题的解决方案是将配置设置(Umbraco解决方案的UnitTests项目中的设置)复制到我的测试项目中

Umbraco依赖于配置文件。对于单元测试来说并不理想,但它确实有效


此处已解释。

您错误地阅读了问题,因为我在代码中没有做对或错,因为它是Umbraco源代码。我现在明白了-我道歉!我以为你是想加载你自己的配置设置来测试它们。