2010-04-21 10 views
5

Wpadłem na dziwny problem. W moim teście jednostkowym chcę sprawdzić zlokalizowane ciągi. Jednak nie wydaje mi się, żeby to działało. Na przykład utworzyłem dwa zasoby: Resource1.resx dla języka angielskiego i Resource1.zh-CN.resx dla języka chińskiego. Projekt testu jednostkowego może otrzymać tylko (domyślny?) Ciąg zasobów angielskich. Jest to kod używam:Projekt MSTest nie może uzyskać zlokalizowanego ciągu znaków?

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")); 

stworzyłem kolejny regularny projekt (nie oznacza to projekt MSTest), aby upewnić się, że miejscowe ciągi pracują. Działa więc w zwykłym projekcie, ale nie w projekcie MSTest.

Nie pomogło nawet jeśli mogę umieścić następujący kod, aby „zh-CN” jako bieżący kultury badanej jednostki:

[TestInitialize()] 
public void MyTestInitialize() 
{ 
    Thread.CurrentThread.CurrentCulture = new CultureInfo("zh-CN"); 
    Thread.CurrentThread.CurrentUICulture = new CultureInfo("zh-CN"); 
} 

Ktokolwiek widział podobnych problemów? Czy istnieje jakieś obejście?

Odpowiedz

10

Nie musisz używać DeploymentItem, aby upewnić się, że biblioteka lokalizacji znajduje się w folderze testowym?

[TestMethod()] 
[DeploymentItem(@"bin\Debug\fr\Proj.resources.dll", "fr-CA")] 
public void TestDialogLocalization(){ 
// blah 
} 
+0

O, świetnie. To jest lekarstwo! Dziękuję milion! Ciekawe jednak ... plik resources.dll został już skopiowany do przetestowania katalogu projektu. Dodanie tego atrybutu nie spowoduje ponownego skopiowania pliku (ze znacznika czasu). Jednak bez tego atrybutu to nie działa. – miliu

+0

hahah kreda inny do szaleństwa z mstest lol –

+0

Ładny połów. Chciałbym umieścić to na górze moich metod testowania za pomocą '[DeploymentItem]' do sprawdzenia poprawności mojego kopiowania plików: 'Assert.IsTrue (File.Exists (@" nl \ Project.resources.dll ")," Nie znaleziono pliku ");' – tomfanning

Powiązane problemy