2014-09-25 75 views
1

我试图为我的MVC5应用程序创建单元测试,我正在使用资源。我的问题是,当我执行测试时,会抛出这个异常。资源大会没有找到

System.Resources.MissingManifestResourceException:无法为指定的文化或中性文化找到适当的资源。确保“Resources.Ressources.resources”正确嵌入或在编译时链接到装配“GestionSaisieExternaliséeV2”,或者确保所有需要的附属程序集都可加载并已进行了完全签名

我的行动使用的资源的控制器。

[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] 
internal static global::System.Resources.ResourceManager ResourceManager 
{ 
    get 
    { 
      if (object.ReferenceEquals(resourceMan, null)) 
      { 
       global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Resources.Ressources", typeof(Ressources).Assembly); 
       resourceMan = temp; 
      } 
      return resourceMan; 
    } 
} 

的VS解决方案项目:

  • MVC 5项目。
  • 单元测试项目。
+1

您是否验证了错误消息中提到的所有内容?如果是的话 - 请确保用您的发现更新您的文章。 – 2014-09-25 14:04:31

+0

我不知道要验证什么,我的资源文件“.resx”是bin文件夹和MVC应用程序的DLL也。 – HLS 2014-09-25 14:10:45

+0

您是否缺少测试项目中的参考? – 2014-09-25 14:18:12

回答

1

已解决。 资源文件应该在文件的属性中设置为“Embedded Resource”。

感谢大家。

0

我认为你需要让你的资源类公开;见下图:

Make resources public.

另一件事将是InternalVisibleTo属性添加到AssemblyInfo.cs文件你的MVC项目。这将使内部类型(默认访问修饰符)对测试程序集可见,因此您可以从那里访问Resources.Something