Проект MSTest не может получить локализованную строку?

Я столкнулся со странной проблемой. В моем модульном тесте я хочу проверить локализованные строки. Однако я, может казаться, не получаю его работа. Например, я создал два ресурса: 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");
} 

Кто-либо видел подобные проблемы? Есть ли какое-либо обходное решение?

5
задан miliu 21 April 2010 в 21:48
поделиться

1 ответ

Разве вам не нужно использовать DeploymentItem , чтобы убедиться, что DLL локализации находится в тестовой папке?

[TestMethod()]
[DeploymentItem(@"bin\Debug\fr\Proj.resources.dll", "fr-CA")]
public void TestDialogLocalization(){
 // blah
}
10
ответ дан 13 December 2019 в 22:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: