编码的UI测试,以隔离测试UI组件

时间:2013-09-17 08:20:14

标签: c# coded-ui-tests gui-test-framework

我们希望使用编码的ui测试框架编写自动化测试。我们希望单独测试ui组件,而无需在单独的进程中启动应用程序。

例如,如果我们在应用程序中有一个弹出对话框来捕获用户的数据,我们只希望启动特定对话框并验证不同的用例,而不是运行整个应用程序。

我们尝试通过启动对话框作为测试initialize()的一部分进行测试,但它无法找到控件...但是如果我单独启动对话框,相同的测试工作正常。

有没有人试过这个或者建议让它工作?

3 个答案:

答案 0 :(得分:2)

编码的UI框架是一个非常强大的框架,但有许多问题(我的意思是LOTS)。

我不建议你做你想要完成的事情。

此外,测试“隔离组件”是单元测试,根据我的经验,这根本不是编码UI测试的最佳实践。

编码的UI测试将帮助您测试端到端的跨应用程序进程,因为它通过击键和鼠标点击模拟用户输入,因此最接近用户。

此外,由于UI在开发过程中往往会发生很大的变化,而且Coded UI依赖于此,我建议您将它主要用于对已知不会很快改变的Windows的回归测试。 通过这种方式,您可以保持低维护率和高生产率。

希望这有帮助。

答案 1 :(得分:1)

编码用户界面旨在检查应用程序(以及网页)的功能。编码的UI不用于测试与其应用程序分开的UI片段。但是,可以创建一个包含一个或多个UI组件的测试工具应用程序,允许它们与实际应用程序隔离进行测试。

测试工具可以轻松为每个正在测试的组件创建一个窗口。该窗口将包括正在测试的组件以及一些其他简单控件。这些简单的控件可以公开被测组件的内部值,也可以用于将值传递给组件。

答案 2 :(得分:0)

我认为您尝试做的事情是可行的,但适用于您自己的自定义控件。我认为你应该按此顺序解决这个问题。

  1. VS的第二个实例,用于捕获测试产生控件时实际看到的控件。
  2. 更新搜索条件,例如进程名称,窗口标题
  3. 可以向TestInitialize生成器添加属性,以便使用有用的ID,名称或标题创建控件。 (不确定你的控件所在的技术堆栈)
  4. 再次运行测试