2012-10-11 46 views
2

我正在开发Silverlight应用程序,并遇到与单元测试相关的一个问题。 这个单元测试的目的是测试本地化。Silverlight单元测试 - 本地化

默认文化是英语,我想测试法国文化。 我尝试设置文化和UI文化和DeploymentItem属性。但没有成功。

这里是我的测试

using Microsoft.VisualStudio.TestTools.UnitTesting; 
[TestClass] 
public class SampleTest 
{ 

    [TestMethod] 
    [DeploymentItem(@"Bin\fr", "fr")] 
    public void Test Method() 
    { 
      SetSpecificCurture(false); 
      string test = EngineAnomaliesViewStrings.Identifier; 
      Note: [EngineAnomaliesViewStrings is my resource file] 

      Assert.AreEqual("Some French Test", test); 
    } 

    private void setSpecificCurture(Boolean isUkLable) 
     { 
      CurrentUserLogged.Details.IsUKLanguage = isUkLable; 

      string culture = isUkLable ? "en" : "fr"; 
      string dateFormat = isUkLable ? "MM/dd/yyyy" : "dd/MM/yyyy"; 
      Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo(culture); 
      Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo(culture); 
      Thread.CurrentThread.CurrentCulture.DateTimeFormat.ShortDatePattern = dateFormat; 
      Thread.CurrentThread.CurrentUICulture.DateTimeFormat.ShortDatePattern = dateFormat; 

     } 

即使通过设置FR文化,总是让英语值。

任何人都可以有一个想法来解决这个问题吗?

谢谢, Mahesh。

回答

0

Mahesh,

只是为了别人的目的知道我们如何解决这个问题。正如我们发现的,解决方案是在Silverlight UnitTest项目的AppMenifest.xml文件的Deployment.Parts节点内添加一个AssemblyPart。 (默认情况下,fr资源文件不包含在UnitTest项目xap文件中)

<AssemblyPart Source="fr/MyProject.resources.dll" /> 

谢谢。

Dax