如何:设置 Silverlight 应用程序以进行测试

通过使用编码的 UI 测试,可以使用 Visual Studio 2010 旗舰版或 Visual Studio 2010 高级专业版为 Silverlight 4 应用程序创建自动测试。 还可以使用 Microsoft 测试管理器为 Silverlight 4 应用程序的手动测试创建操作录制。

重要说明重要事项

仅支持在 Internet Explorer 窗口中承载的 Silverlight 4 应用程序。 不支持通过使用其他浏览器承载的或未在浏览器中承载的 Silverlight 4 应用程序。

若要设置 Silverlight 应用程序,以便能为其创建编码的 UI 测试或操作录制,您必须执行以下关键任务:

  1. 将 Microsoft.VisualStudio.TestTools.UITest.Extension.SilverlightUIAutomationHelper.dll 作为引用添加到解决方案中的每个 Silverlight 4 项目中,以便能标识 Silverlight 控件。

  2. 确保每个 Silverlight 控件都具有一个唯一的标识属性。

    提示

    若要为其他控件设置此属性,请参见为 Silverlight 控件设置唯一的自动化属性以进行测试

  3. 生成并部署应用程序。

警告

无法将 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 项目中

  1. 若要打开包含任一 Silverlight 项目的解决方案,请单击**“文件”,然后指向“打开”。 单击“项目/解决方案”**。

    将显示**“打开项目”**对话框。

  2. 选择解决方案,然后单击**“打开”**。

  3. 对于解决方案中要测试的每个 Silverlight 项目,您必须添加 SilverlightUIAutomationHelper.dll。 为此,请右击项目,然后单击**“卸载项目”**。

  4. 右击卸载的项目,然后单击**“编辑 <项目名称>”**。

    您将看到 PropertyGroup 节点后跟 ItemGroup 节点。

  5. 若要将生产条件设置为用于有条件地添加 SilverlightUIAutomationHelper.dll,您必须进行以下两项修改:

    1. 若要设置生产条件,请将以下条目添加到第一个 <PropertyGroup> 节点:

      <Production Condition="'$(Production)'==''">False</Production>
      
    2. 若要在版本不是生产版本时添加 DLL,请在 PropertyGroup 节点之后和 ItemGroup 节点之前插入以下 Choose 节点:

      <Choose>
         <When Condition=" '$(Production)'=='False' ">
               <ItemGroup>
                 <Reference Include="Microsoft.VisualStudio.TestTools.UITest.Extension.SilverlightUIAutomationHelper">
                 </Reference>
               </ItemGroup>
             </When>
        </Choose>
      
  6. 若要保存该文件,请单击**“保存”**。

  7. 若要重新加载这些更改,请右击项目,然后单击**“重新加载项目”**。

    警告

    若要测试多个 Silverlight 项目,您必须对每个项目执行上述步骤。

从 Silverlight 4 项目中删除 SilverlightUIAutomationHelper.dll

  • 若要删除 SilverlightUIAutomationHelper.dll,使其不会与成品代码一起重新发布,请在第一个 <PropertyGroup> 节点中将生产条件值设置为 true:

    <Production Condition="'$(Production)'==''">True</Production>
    

    这样一来,上一过程中添加到项目的 Choose 节点不会再将 DLL 添加为引用。

    提示

    还可将名为 Production 的环境变量的值设置为 True。 然后,可使用 msbuild 来生成 Silverlight 项目并删除 SilverlightUIAutomationHelper.dll。

请参见

概念

使用自动 UI 测试来测试用户界面

其他资源

使用编码的 UI 测试或操作录制来测试 Silverlight 应用程序

为 Silverlight 控件设置唯一的自动化属性以进行测试