场景: 我们有一个具有本地化功能的应用程序,我们使用广泛的编码 UI 测试套件对其进行自动化测试。 UI 文本反射(reflect)了用户选择的主要语言,例如法语。
我们有许多消息断言来检查特定结果,因此我们必须适应本地化环境。
我已开始创建本地化的 Resources.resx 文件(例如 Resources.fr-FR.resx)并将 CurrentUICulture 设置为 fr-FR,但始终检索英文字符串。 (Properties.Resources.Culture始终为null,即使我强制设置它,也没有成功...)
关于如何实现这一目标或者我哪里出错了有什么想法吗?我是否必须使用本地化文本强制部署程序集?
谢谢!
最佳答案
好的,所以我明白了:
对于编码的 UI 测试,所有必需的程序集都必须位于 ..\TestResults\uniqueTestInstance\Out 文件夹中。语言程序集不会自动复制到此处,因此我所做的是将以下内容添加到我的 testsettings 文件中:
<?xml version="1.0" encoding="UTF-8"?>
<TestSettings name="RegressionCUIT" id="caf0f1b1-7dd7-4bbe-9920-edd664229791" xmlns="http://microsoft.com/schemas/VisualStudio/TeamTest/2010">
<Description>These are default test settings for a local test run.</Description>
<Deployment>
<DeploymentItem filename="Resources\TestData.xml" />
<DeploymentItem filename="RegressionTesting\bin\Debug\de-DE\" outputDirectory="de-DE\" />
<DeploymentItem filename="RegressionTesting\bin\Debug\fr-FR\" outputDirectory="fr-FR\" />
</Deployment>
</TestSettings>
请注意 DeploymentItem 上的 outputDirectory 属性。 现在工作得很好。
在此处了解有关文件部署的更多信息: http://msdn.microsoft.com/en-us/library/ms182475.aspx
关于localization - 如何设置编码 UI 测试的区域性以从资源文件中获取本地化文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21133083/