编码的UI C# - 本地化不适用于我的Web自动化

时间:2016-06-15 12:47:36

标签: c# localization coded-ui-tests resx

外部Web应用程序需要在许多区域设置上进行测试,例如fr_FR目录。不幸的是,由于某种原因,我仍无法使其发挥作用。

我创建了本地化的.resx文件(例如Res_ErrorMsgs.fr-FR.resx)并将CurrentUICulture设置为fr-FR,但始终检索英文字符串。在4个代码块之后,我尝试了几个实验。没有任何效果。

在外部应用程序的文化是“fr-FR”时; CodedUI必须从相应的RESX文化文件(fr-FR)插入测试数据(到外部应用程序的文本框)并执行测试。目前即使我尝试更改CodedUI上的文化(请参阅下面的代码),它仍然会从默认的“en-GB”RESX文件中读取测试数据。

注意:我在Microsoft VS Enterprise 2015 / Windows 8.1 / OS区域设置en_GB上通过C#编写了编码UI脚本。

Code block 1
        ResourceManager resourceManager = new ResourceManager("CodedUI_Regression.Utility.Res_ErrorMsgs", Assembly.GetExecutingAssembly());
        Thread.CurrentThread.CurrentUICulture = CultureInfo.GetCultureInfo("fr-FR");
        string str = resourceManager.GetString("Err_PayServiceFeeBlank", Thread.CurrentThread.CurrentUICulture);
        MessageBox.Show(str);

Code block 2
        ResourceManager rm = new ResourceManager("CodedUI_Regression.Utility.Res_ErrorMsgs", typeof(Res_ErrorMsgs).Assembly);
        string errMsg = String.Format("The current culture is {0}.\n{1}", Thread.CurrentThread.CurrentUICulture.Name, rm.GetString("Err_PayServiceFeeBlank"));
        MessageBox.Show(errMsg);

Code block 3
        ResourceManager rm1 = new ResourceManager(typeof(CodedUI_Regression.Utility.Res_ErrorMsgs));
        MessageBox.Show(rm1.GetString("Err_PayServiceFeeBlank", CultureInfo.GetCultureInfo("fr-FR")));

Code block 4
        ResourceManager rm2 = new ResourceManager("CodedUI_Regression.Utility.Res_ErrorMsgs", typeof(Res_ErrorMsgs).Assembly);
        MessageBox.Show(rm2.GetString("Err_PayServiceFeeBlank", CultureInfo.GetCultureInfo("fr-FR")));

2 个答案:

答案 0 :(得分:0)

对我来说,似乎无法找到资源文件,并且它默认为GB文化。您可以迭代可用的资源以确保它正确地看到它们吗?

var assembly = Assembly.GetExecutingAssembly();
foreach (string s in assembly.GetManifestResourceNames()) 
    System.Diagnostics.Debug.WriteLine(s);

答案 1 :(得分:0)

  1. 右键单击解决方案名称(在右侧的解决方案资源管理器中) 方) - >添加 - >新商品 - >这将打开"添加新项目 - 解决方案项目"对话框。
  2. 选择"测试设置"在"已安装"从左侧窗格。
  3. 现在选择"测试设置"从中间窗格中输入文件并提供有意义的名称,然后单击“添加”按钮
  4. 这将打开"测试设置"向导
  5. 选择"部署"从左侧窗格(从顶部开始的第4个)
  6. 这将使您能够指定除目标程序集之外的目录和文件"。要做到这一点,首先检查"启用部署"复选框。
  7. 现在导航到您的"解决方案目录"通过Windows资源管理器。即,这是.csproj文件所在的目录。
  8. 现在进一步导航到bin / Debug文件夹。在Debug文件夹中,为您要测试的文化(区域设置)创建文件夹。例如" en-US"," fr-FR"等
  9. 现在回到你停在"测试设置"向导。
  10. 按"添加目录"按钮并浏览到您在步骤8中创建的文化文件夹(一个接一个),并将其添加到此处。
  11. 现在关闭向导。
  12. 现在通过Windows资源管理器导航到测试设置文件,并通过文本编辑器(如记事本或记事本++)打开它。 (请记住,此文件的扩展名为.testsettings)
  13. 文件将包含类似于下面的内容
  14. 
    
    ID  Date        Amount  Name
    1   05.03.2015  121     Peter
    2   14.01.2015  127     Max
    3   11.01.2015  77      Eva
    4   06.11.2015  141     Jamie
    5   04.03.2015  58      Sophie
    1   04.04.2015  94      Peter
    7   20.06.2015  52      Lucas
    3   14.12.2015  136     Eva
    2   02.11.2015  93      Max
    10  20.08.2015  59      Mason
    4   11.01.2015  145     Jamie
    4   02.02.2015  113     Jamie
    4   26.02.2016  89      Jamie
    1   30.03.2016  137     Peter
    15  09.09.2015  81      Jackson
    16  25.02.2015  61      Liam
    2   26.02.2016  133     Max
    2   26.10.2015  80      Max
    19  25.09.2015  76      Aiden
    
    
    
    

    1. 将其更新为以下
    2. 
      
      <Deployment>
        <DeploymentItem filename="RegressionTest_Solution\bin\Debug\fr-FR\" />
        <DeploymentItem filename="RegressionTest_Solution\bin\Debug\en-US\" />
      </Deployment>
      &#13;
      &#13;
      &#13;

      1. 保存并关闭文件。

      2. 现在在visual studio上,转到Test - &gt;测试设置 - &gt;选择“测试设置文件”。浏览测试设置文件,然后按“打开”。

      3. 17。)最后在你的编码ui测试脚本中添加以下2行代码。记住&#34;资源&#34;是我的RESX文件的名称,它位于&#34; RegressionTest_Solution - &gt;内。效用&#34;夹。 您可以将RESX文件放在不同的路径中。但请确保您正确引用它。 &#34;语言&#34;是一个变量,它可以容纳您将要测试的当前文化。例如&#34; EN-US&#34;

        <Deployment>
          <DeploymentItem filename="RegressionTest_Solution\bin\Debug\fr-FR\" outputDirectory="fr-FR\" />
          <DeploymentItem filename="RegressionTest_Solution\bin\Debug\en-US\" outputDirectory="en-US\" />
        </Deployment>

        18。)以上2个班轮代码将能够选择文化并从正确的培养文件中读取值。对我来说,默认文化文件始终是Resources.RESX,我的US文化文件是Resources.en-US.resx。这也是在&#34; RegressionTest_Solution - &gt;创建的。效用&#34;文件夹中。