C# 编码的UI测试,用于单独测试UI组件

C# 编码的UI测试,用于单独测试UI组件,c#,coded-ui-tests,gui-test-framework,C#,Coded Ui Tests,Gui Test Framework,我们希望使用编码的ui测试框架编写自动化测试。我们希望单独测试ui组件,而无需在单独的流程中启动应用程序 例如,如果我们在应用程序中有一个弹出对话框来捕获用户的数据,那么我们只希望启动特定的对话框并验证不同的用例,而不是运行整个应用程序 我们试图通过在test initialize()中启动对话框进行测试,但它找不到控件。。。但是如果我单独启动对话框,同样的测试也可以正常工作 有没有人尝试过或者建议过如何使用它?编码的UI框架是一个功能强大的框架,但仍然有很多问题(我的意思是很多问题) 我不推荐

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

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

我们试图通过在test initialize()中启动对话框进行测试,但它找不到控件。。。但是如果我单独启动对话框,同样的测试也可以正常工作


有没有人尝试过或者建议过如何使用它?

编码的UI框架是一个功能强大的框架,但仍然有很多问题(我的意思是很多问题)

我不推荐它去做你想做的事情

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

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

此外,由于UI在开发过程中往往会发生很大的变化,而编码的UI也依赖于此,我建议您主要将其用于windows的回归测试,因为您知道这些测试在短期内不会改变。 这样,您将保持低维护和高生产率


希望这能有所帮助。

编码的UI框架是一个功能强大的框架,但也有很多问题

我不推荐它去做你想做的事情

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

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

此外,由于UI在开发过程中往往会发生很大的变化,而编码的UI也依赖于此,我建议您主要将其用于windows的回归测试,因为您知道这些测试在短期内不会改变。 这样,您将保持低维护和高生产率


希望这能有所帮助。

编码的UI用于检查应用程序(以及网页)的功能。编码UI不用于测试与其应用程序分离的UI片段。但是,可以创建一个包含一个或多个UI组件的测试线束应用程序,以允许在与实际应用程序隔离的情况下对其进行测试


测试线束可以很容易地为每个正在测试的部件设置一个窗口。该窗口将包括正在测试的组件以及一些其他简单控件。这些简单控件可以公开正在测试的组件的内部值,也可以用于将值传递到组件。

编码的UI用于检查应用程序(以及网页)的功能。编码UI不用于测试与其应用程序分离的UI片段。但是,可以创建一个包含一个或多个UI组件的测试线束应用程序,以允许在与实际应用程序隔离的情况下对其进行测试


测试线束可以很容易地为每个正在测试的部件设置一个窗口。该窗口将包括正在测试的组件以及一些其他简单控件。这些简单的控件可以公开正在测试的组件的内部值,也可以用于将值传递到组件。

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

  • VS的第二个实例,用于在测试生成控件时捕获控件的实际外观
  • 更新您的搜索条件,例如进程名称、窗口标题
  • 可能会将属性添加到
    TestInitialize
    spawner,以便它使用有用的ID、名称或标题创建控件。(不确定控件所在的技术堆栈)
  • 再次运行测试

  • 我认为您的尝试是可行的,但是仅针对您自己的自定义控件。我认为你应该按照这个顺序来解决这个问题

  • VS的第二个实例,用于在测试生成控件时捕获控件的实际外观
  • 更新您的搜索条件,例如进程名称、窗口标题
  • 可能会将属性添加到
    TestInitialize
    spawner,以便它使用有用的ID、名称或标题创建控件。(不确定控件所在的技术堆栈)
  • 再次运行测试

  • 听起来您试图实现的是通过GUI进行的单元测试,而这不是编码UI测试框架的全部内容。听起来您试图实现的是通过GUI进行的单元测试,而这不是编码UI测试框架的全部内容。