我遇到了一个奇怪的问题.在我的单元测试中,我想检查本地化的字符串.但是,我似乎无法让它发挥作用.例如,我创建了两个资源:英语的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"));
Run Code Online (Sandbox Code Playgroud)
我创建了另一个常规项目(意味着不是MSTest项目)以确保本地化字符串正常工作.因此,它适用于常规项目,但不适用于MSTest项目.
即使我把下面的代码作为单元测试的当前文化来制作'zh-CN',它也无济于事:
[TestInitialize()]
public void MyTestInitialize()
{
Thread.CurrentThread.CurrentCulture = new CultureInfo("zh-CN");
Thread.CurrentThread.CurrentUICulture = new CultureInfo("zh-CN");
}
Run Code Online (Sandbox Code Playgroud)
有人见过类似的问题吗?有没有解决方法?