如何:设置 Silverlight 应用程序以进行测试
通过使用编码的 UI 测试,可以使用 Visual Studio 2010 旗舰版或 Visual Studio 2010 高级专业版为 Silverlight 4 应用程序创建自动测试。 还可以使用 Microsoft 测试管理器为 Silverlight 4 应用程序的手动测试创建操作录制。
重要事项 |
---|
仅支持在 Internet Explorer 窗口中承载的 Silverlight 4 应用程序。 不支持通过使用其他浏览器承载的或未在浏览器中承载的 Silverlight 4 应用程序。 |
若要设置 Silverlight 应用程序,以便能为其创建编码的 UI 测试或操作录制,您必须执行以下关键任务:
将 Microsoft.VisualStudio.TestTools.UITest.Extension.SilverlightUIAutomationHelper.dll 作为引用添加到解决方案中的每个 Silverlight 4 项目中,以便能标识 Silverlight 控件。
确保每个 Silverlight 控件都具有一个唯一的标识属性。
提示
若要为其他控件设置此属性,请参见为 Silverlight 控件设置唯一的自动化属性以进行测试。
生成并部署应用程序。
警告
无法将 SilverlightUIAutomationHelper.dll 作为应用程序的一部分重新发布。 在将此 DLL 添加到 Silverlight 项目中时,您必须添加它,以便您能有条件地编译应用程序(带或不带此 DLL),如以下过程中所示。 可以创建一个仅用于测试的带 DLL 的生成。 通过此方式,您将不会重新发布 DLL。
支持的控件
操作录制和编码的 UI 测试支持以下控件:
支持作为 Microsoft Silverlight 4 Tools for Visual Studio 2010 的一部分发布的标准控件。
支持派生自 Microsoft Silverlight 4 工具中的标准控件的自定义控件。
从 System.Windows.Controls.Control 继承的自定义控件。 根据您自定义这些控件的方式,对某些操作的支持可能是有限的。 此外,可能无法获取用于验证的某些属性的值。
不受支持的控件
操作录制和编码的 UI 测试不支持以下控件:
将未派生自控件的自定义控件作为 Microsoft Silverlight 4 Tools for Visual Studio 2010 的一部分提供。
可能不支持第三方控件,具体取决于创建这些控件的方式。
警告
可以创建一个自定义插件以支持自定义控件测试。 有关如何创建自定义插件的示例,请参见扩展编码的 UI 测试和操作录制以支持 Microsoft Excel。
使用以下过程看添加或删除 SilverlightUIAutomationHelper.dll:
将 SilverlightUIAutomationHelper.dll 添加到 Silverlight 4 项目中
从 Silverlight 4 项目中删除 SilverlightUIAutomationHelper.dll
若要为每个 Silverlight 控件设置一个唯一的标识属性,请参见以下主题:为 Silverlight 控件设置唯一的自动化属性以进行测试。
将 SilverlightUIAutomationHelper.dll 添加到 Silverlight 4 项目中
若要打开包含任一 Silverlight 项目的解决方案,请单击**“文件”,然后指向“打开”。 单击“项目/解决方案”**。
将显示**“打开项目”**对话框。
选择解决方案,然后单击**“打开”**。
对于解决方案中要测试的每个 Silverlight 项目,您必须添加 SilverlightUIAutomationHelper.dll。 为此,请右击项目,然后单击**“卸载项目”**。
右击卸载的项目,然后单击**“编辑 <项目名称>”**。
您将看到 PropertyGroup 节点后跟 ItemGroup 节点。
若要将生产条件设置为用于有条件地添加 SilverlightUIAutomationHelper.dll,您必须进行以下两项修改:
若要设置生产条件,请将以下条目添加到第一个 <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 项目,您必须对每个项目执行上述步骤。
从 Silverlight 4 项目中删除 SilverlightUIAutomationHelper.dll
若要删除 SilverlightUIAutomationHelper.dll,使其不会与成品代码一起重新发布,请在第一个 <PropertyGroup> 节点中将生产条件值设置为 true:
<Production Condition="'$(Production)'==''">True</Production>
这样一来,上一过程中添加到项目的 Choose 节点不会再将 DLL 添加为引用。
提示
还可将名为 Production 的环境变量的值设置为 True。 然后,可使用 msbuild 来生成 Silverlight 项目并删除 SilverlightUIAutomationHelper.dll。