MSTest项目无法获取本地化字符串?

2024-01-06

我遇到了一个奇怪的问题。在我的单元测试中,我想检查本地化的字符串。但是,我似乎无法让它发挥作用。例如,我创建了两个资源:英语的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");
} 

有人见过类似的问题吗?有什么解决方法吗?


你不需要使用部署项 http://msdn.microsoft.com/en-us/library/microsoft.visualstudio.testtools.unittesting.deploymentitemattribute(VS.80).aspx确保本地化 DLL 位于测试文件夹中?

[TestMethod()]
[DeploymentItem(@"bin\Debug\fr\Proj.resources.dll", "fr-CA")]
public void TestDialogLocalization(){
 // blah
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MSTest项目无法获取本地化字符串? 的相关文章

随机推荐