外部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")));
答案 0 :(得分:0)
对我来说,似乎无法找到资源文件,并且它默认为GB文化。您可以迭代可用的资源以确保它正确地看到它们吗?
var assembly = Assembly.GetExecutingAssembly();
foreach (string s in assembly.GetManifestResourceNames())
System.Diagnostics.Debug.WriteLine(s);
答案 1 :(得分:0)
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

<Deployment>
<DeploymentItem filename="RegressionTest_Solution\bin\Debug\fr-FR\" />
<DeploymentItem filename="RegressionTest_Solution\bin\Debug\en-US\" />
</Deployment>
&#13;
保存并关闭文件。
现在在visual studio上,转到Test - &gt;测试设置 - &gt;选择“测试设置文件”。浏览测试设置文件,然后按“打开”。
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;文件夹中。