【发布时间】:2013-03-06 17:21:24
【问题描述】:
我遇到了一个奇怪的问题。在我的单元测试中,我想检查本地化的字符串。但是,我似乎无法让它工作。例如,我创建了两个资源:Resource1.resx 用于英文,Resource1.zh-CN.resx 用于中文。单元测试项目只能获取(默认?)英文资源字符串。这是我正在使用的代码:
ResourceManager actual = new ResourceManager(typeof(LocaleTest.Properties.Resource1));
string name0 = actual.GetString("Name", new CultureInfo("en-US"));
string name1 = actual.GetString("Name", new CultureInfo("zh-CN"));
我创建了另一个常规项目(不是 MSTest 项目)以确保本地化字符串正常工作。因此,它适用于常规项目,但不适用于 MSTest 项目。
即使我将以下代码设置为 'zh-CN' 作为单元测试的当前文化,它也无济于事:
[TestInitialize()]
public void MyTestInitialize()
{
Thread.CurrentThread.CurrentCulture = new CultureInfo("zh-CN");
Thread.CurrentThread.CurrentUICulture = new CultureInfo("zh-CN");
}
有人遇到过类似的问题吗?有什么解决办法吗?
【问题讨论】:
标签: string localization project mstest resources