如何:创建编码的 UI 测试

使用 Visual Studio 高级专业版或 Visual Studio 旗舰版,可以创建编码的 UI 测试,它可测试应用程序的用户界面是否功能正常。 编码的 UI 测试对应用程序的用户界面控件执行操作,并验证是否以正确的值显示了正确的控件。 有关编码的 UI 测试支持哪些平台和配置的更多信息,请参见支持编码的 UI 测试和操作录制的配置和平台

创建编码的 UI 测试会生成一个特定于您的测试的 UIMap 对象,该对象表示位于该 UI 中的或测试录制期间创建的窗口、控件、参数和断言。 然后,可以对这些 UI 对象执行操作以将用户界面自动化。 例如,可以设置测试方法,在测试中单击 Web 应用程序中的超链接,在文本框中键入一个值,或基于字段中的值分支出来并采取不同的测试操作。

提示

可以添加多个编码的 UI 测试以及多个 UI 映射对象和文件以便测试大型应用程序。 有关更多信息,请参见使用多个 UI 映射测试大型应用程序

编码的 UI 测试类通过应用于该类的 CodedUITestAttribute 来标识。

每个编码的 UI 测试都是编码的 UI 测试类中的一个测试方法。 可以向每个编码的 UI 测试类添加多个测试方法,并使用 TestMethodAttribute 来标识每个编码的 UI 测试方法。

测试方法还可以为 UI 测试控件添加验证代码以获取 UI 测试控件的属性值。 测试方法可以使用 Assert 语句将属性的实际值与预期值进行比较。 此比较的结果确定测试的结果。 每次您运行编码的 UI 测试时,都可以分析测试结果并在测试未通过时查看或存储断言失败的详细信息。

创建编码的 UI 测试时,将向测试项目添加以下这些文件:

文件

说明

CodedUITest1.cs

包含编码的 UI 测试类、测试方法和断言。

UIMap.uitest

包含 UIMap 类的 XML 模型,包括所有窗口、控件、属性、方法、参数、操作和断言。

UIMap.Designer.cs

包含 UIMap.uitest 文件中包含的 XML 的代码表示形式。 不要编辑此文件。

UIMap.cs

包含 UIMap 类的更多代码。 可以在此文件中放置 UI 映射任何自定义。

以下这些程序集作为引用添加到测试项目:

  • Microsoft.VisualStudio.QualityTools.CodedUITestFramework

  • Microsoft.VisualStudio.QualityTools.UnitTestFramework

  • Microsoft.VisualStudio.TestTools.UITest.Common

  • Microsoft.VisualStudio.TestTools.UITest.Extension

  • Microsoft.VisualStudio.TestTools.UITesting

创建编码的 UI 测试

创建编码的 UI 测试

  1. 执行下列任一任务:

    1. 在**“解决方案资源管理器”中,右击测试项目,指向“添加”,然后单击“编码的 UI 测试”**。

    2. 在**“测试列表编辑器”“测试视图”窗口中,右击窗口,然后单击“新建测试”。 在“添加新测试”对话框中单击“编码的 UI 测试”,再单击“确定”**。

    3. 在**“测试”菜单上,单击“新建测试”。 在“添加新测试”对话框中单击“编码的 UI 测试”,再单击“确定”**。

    此时将显示**“生成代码”**对话框。

  2. 在此对话框中,可以选择要用于创建编码的 UI 测试中的 UI 测试控件的方法:

    方法

    操作

    后续步骤

    录制受测应用程序中的操作,修改 UI 映射或添加断言

    单击“录制操作、编辑 UI 映射或添加断言”

    如何:通过录制受测应用程序来生成编码的 UI 测试

    使用现有操作录制

    单击“使用现有操作录制”

    如何:通过操作录制生成编码的 UI 测试

    所有这些方法都在测试项目中创建编码的 UI 测试类,此类具有 [CodedUITest] 特性并打开此类的文件。 此类通过具有 [TestMethod] 特性的测试方法来填充。 **“解决方案资源管理器”**将显示测试项目中的新测试文件。

    提示

    如果单击“取消”,也会创建编码的 UI 测试类。 可以手动向此类添加代码以创建编码的 UI 测试。 或者,可按照“后续步骤”列的过程中的步骤来使用表中列出的其他方法。

示例

下面的代码示例演示编码的 UI 测试类和分配有测试类别值 Priority1 的测试方法。 该测试方法用于一个将两个数相加的简单的计算器应用程序,并验证相加的结果是否正确以使此测试能够通过。

两个 UI 映射方法(AddTwoNumbers() 和 AssertForAdd())的代码位于 UI 映射的不可编辑部分,不能直接进行编辑。 但是,您可以从 UI 映射中复制生成的代码以进行修改,并在 CodedUITest1 类中创建替换方法或其他方法。 有关更多信息,请参见 编码的 UI 测试的最佳做法

在使用特定数据创建编码的 UI 测试之后,可能需要用不同的数据集多次运行编码的 UI 测试以测试不同条件。 为此,您可以从数据源中向编码的 UI 测试添加参数,以创建数据驱动的编码的 UI 测试。 有关更多信息,请参见如何:创建数据驱动的编码的 UI 测试

[CodedUITest]
public class CodedUITest1
{
    public CodedUITest1()
    {
    }

    [TestCategory("Priority1"), TestMethod]
    public void CodedUITestMethod1()
    {
        // To generate code for this test, select "Generate Code" from 
        // the shortcut menu and select one of the menu items.
        this.UIMap.AddTwoNumbers();
        this.UIMap.AssertForAdd();
    }
}

请参见

参考

UIMap

Assert

概念

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

编码的 UI 测试的最佳做法

支持编码的 UI 测试和操作录制的配置和平台

其他资源

使用多个 UI 映射测试大型应用程序