演练:为 Silverlight 应用程序创建、编辑和维护编码的 UI 测试
通过使用 Microsoft Microsoft Visual Studio 2010 Feature Pack 2,您可以为 Silverlight 4 应用程序创建编码的 UI 测试或操作录制。 利用操作录制,可以加快执行手动测试步骤。 有关操作录制或编码的 UI 测试的更多信息,请参见如何:创建操作录制或如何:创建编码的 UI 测试。
在本演练中,您将了解在基于 Silverlight 的应用程序中测试 Silverlight 控件所需的过程。 本演练将指导您进行以下过程:
准备进行演练 确保您已安装 Silverlight Developer 运行时并创建一个使用 Silverlight 网格控件的简单 Silverlight 应用程序,将对该网格控件执行编码的 UI 测试。 您将按演练:创建 RIA Services 解决方案中的步骤执行操作。
将 Microsoft.VisualStudio.TestTools.UITest.Extension.SilverlightUIAutomationHelper.dll 添加到 Silverlight 项目。
创建编码的 UI 测试 在 Silverlight 应用程序上创建编码的 UI 测试。
运行编码的 UI 测试 确认编码的 UI 测试能在 Silverlight 应用程序上正常运行。
系统必备
本演练需要:
Visual Studio 2010 旗舰版、Visual Studio 2010 高级专业版或专业测试工具版 2010。
Silverlight Developer 4 for Developers(面向开发人员的 Silverlight Developer 4)。
完成演练:创建 RIA Services 解决方案中的过程。
准备进行演练
准备演练
确认 Silverlight Developer 4 for Developers(面向开发人员的 Silverlight Developer 4)上提供了 Silverlight 4 Developer 运行时。
确认已完成演练:创建 RIA Services 解决方案中的过程。
这将生成一个使用 Silverlight 网格控件的简单 Silverlight 应用程序。 稍后,您将在本演练中使用该网格控件,并对其执行编码的 UI 测试。
提示
有关以下内容的更多信息支持的和不受支持的 Silverlight 控件的更多信息,请参见如何:设置 Silverlight 应用程序以进行测试。
提示
演练:创建 RIA Services 解决方案将安装 WCF RIA Services for Visual Studio 2010 和 AdventureWorksLT sample database(AdventureWorksLT 示例数据库)。
在运行您在演练:创建 RIA Services 解决方案中创建的 RIAServicesExample 时,会将 Web 应用程序的地址复制到剪贴板或记事本文件。 例如,地址可能类似于以下内容:https://localhost: <端口号>/RIAServicesExampleTestPage.aspx。
将 SilverlightUIAutomationHelper.dll 添加到 Silverlight 4 项目中
若要测试您的 Silverlight 应用程序,您必须将 Microsoft.VisualStudio.TestTools.UITest.Extension.SilverlightUIAutomationHelper.dll 作为引用添加到 Silverlight 4 应用程序中,以便能标识 Silverlight 控件。 此帮助程序程序集将检测您的 Silverlight 应用程序,以使与控件有关的信息对您在编码的 UI 测试中使用的 Silverlight 插件 API 可用,或可用于操作录制。无法重新发布此程序集。 因此,当您需要生成应用程序时,您必须有条件地添加此引用。 通过使用此方法,您在将软件部署到客户时将不会重新发布程序集。
添加 SilverlightUIAutomationHelper.dll
对于解决方案中要测试的每个 Silverlight 项目,您必须添加 SilverlightUIAutomationHelper.dll。 在解决方案资源管理器中,右击 RIAServicesExample 项目,再选择**“卸载项目”**。
该项目在解决方案资源管理器中显示为**“RIAServicesExample (不可用)”**。
再次右击该项目,然后单击**“编辑 RIAServicesExample.csproj”**。
这将在代码编辑器中打开 RIAServicesExample.csproj 文件。 您将看到 <PropertyGroup> 节点后跟 <ItemGroup> 节点。 您必须进行以下两项修改:
若要设置生产条件,请将以下条目添加到第一个 <PropertyGroup> 节点:
<Production Condition="'$(Production)'==''">False</Production>
若要在版本不是生产版本时添加 DLL,请在 <PropertyGroup> 节点之后和 <ItemGroup> 节点之前插入以下 <Choose> 节点:
<Choose> <When Condition=" '$(Production)'=='False' "> <ItemGroup> <Reference Include="Microsoft.VisualStudio.TestTools.UITest.Extension.SilverlightUIAutomationHelper"> </Reference> </ItemGroup> </When> </Choose>
若要保存该文件,请单击**“保存”**。
若要重新加载这些更改,请右击服务器项目,然后单击**“重新加载项目”**。
警告
若要测试多个 Silverlight 项目,您必须对每个项目执行上述步骤。
重要事项 若要删除 SilverlightUIAutomationHelper.dll,使其不会与成品代码一起重新发布,请在第一个 <PropertyGroup> 节点中将生产条件值设置为 true。 这样一来,上一过程中添加到项目的 Choose 节点不会再将 DLL 添加为引用。 还可将名为 Production 的环境变量的值设置为 True。 然后,可使用 msbuild 来生成 Silverlight 项目并删除 SilverlightUIAutomationHelper.dll。
为 RIAServicesExample Silverlight 应用程序创建编码的 UI 测试
创建编码的 UI 测试
在解决方案资源管理器中,右击该解决方案,单击**“添加”,然后选择“新建项目”**。
随即出现**“添加新项目”**对话框。
在**“已安装的模板”窗格中,展开“Visual C#”或“Visual Basic”,然后选择“测试”**。
在中间窗格中,选择**“测试项目”**模板。
单击**“确定”**。
在解决方案资源管理器中,将名为**“TestProject1”**的新测试项目添加到您的解决方案中。 代码编辑器中将出现 UnitTest1.cs 或 UnitTest1.vb 文件。 由于本演练中不使用 UnitTest1 文件,因此可将其关闭。
在解决方案资源管理器中,右击**“TestProject1”,单击“添加”,然后选择“编码的 UI 测试”**。
此时将显示**“为编码的 UI 测试生成代码”**对话框。
选择**“录制操作、编辑 UI 映射或添加断言”选项,然后单击“确定”**。
将出现“UIMap – 编码的 UI 测试生成器”。
有关此对话框中选项的更多信息,请参见如何:创建编码的 UI 测试。
在“UIMap – 编码的 UI 测试生成器”中单击**“开始记录”**。 几秒钟后,编码的 UI 测试生成器将准备就绪。
启动 Internet Explorer。
在 Internet Explorer 的地址栏中,输入您在上一过程中复制的 Web 应用程序的地址。 例如:
https://localhost:<port number>/RIAServicesExampleTestPage.aspx
单击一个或两个列标题以对数据进行排序。
关闭 Internet Explorer。
在“UIMap – 编码的 UI 测试生成器”中,单击**“生成代码”**。
在“方法名称”中,键入 SimpleSilverlightAppTest,然后单击**“添加并生成”**。 几秒钟后,编码的 UI 测试将出现,并会被添加到解决方案中。
关闭“UIMap – 编码的 UI 测试生成器”。
CodedUITest1.cs 文件将出现在代码编辑器中。
提示
可基于应用程序中的 Silverlight 控件的类型分配一个唯一的自动化属性。 有关更多信息,请参见 为 Silverlight 控件设置唯一的自动化属性以进行测试.
对 RIAServicesExample Silverlight 应用程序运行编码的 UI 测试
运行编码的 UI 测试
在**“测试”菜单上,选择“Windows”,然后单击“测试视图”。在“测试视图”中,在“测试名称列下选择“CodedUITestMethod1”,然后单击工具栏中的“运行选定内容”**。
编码的 UI 测试将使用 Silverlight 数据网格控件成功运行。
请参见
参考
Microsoft.VisualStudio.TestTools.UITesting.SilverlightControls
Microsoft.VisualStudio.TestTools.UITest.Extension.Silverlight
概念
其他资源
为 Silverlight 控件设置唯一的自动化属性以进行测试