资源管理器和单元测试
Posted
技术标签:
【中文标题】资源管理器和单元测试【英文标题】:ResourceManager and Unit Testing 【发布时间】:2010-09-11 02:36:22 【问题描述】:我很好奇是否有人在使用 ResourceManager 创建单元测试时遇到任何问题。我正在使用 Visual Studio 测试版,并且在测试期间似乎没有加载附属程序集。当我尝试为另一种文化获取资源时,测试总是失败并且资源管理器总是回退到默认文化。完全相同的代码在普通应用程序中运行良好。
【问题讨论】:
【参考方案1】:这让我朝着正确的方向前进。将文件添加到部署配置没有帮助,但禁用部署确实有效。
为了将来参考,请访问 this blog post 并向下滚动到“管理测试运行”部分,了解创建测试配置以及如何禁用部署的详细信息
【讨论】:
这已经在两个不同的场合帮助我解决了同样的问题。【参考方案2】:如果您正在运行 MSTest 并且想要访问中性区域性以外的资源,则需要确保将特定区域性的附属程序集部署到解决方案文件夹中的测试目录。
只需将此属性添加到您的单元测试中:
[DeploymentItem( @"de-DE\AssemblyName.resources.dll", "de-DE")]
这会将资源程序集部署到指定区域性相关子目录中的测试目录。
Source
【讨论】:
【参考方案3】:我过去在附属程序集上遇到过类似的问题。尝试 将附属程序集添加到单元项目依赖项中。在 Visual Studio 中 测试——编辑测试运行配置。选择部署并添加文件 在这里。
在执行所有应用程序时,dll 等会被复制到一个特殊目录。 强命名的 dll 可能会被忽略,因为它们应该在 GAC 中。
【讨论】:
以上是关于资源管理器和单元测试的主要内容,如果未能解决你的问题,请参考以下文章