是否有在WPF/Silverlight应用程序中使用AutomationId属性的通用策略?

是否有在WPF/Silverlight应用程序中使用AutomationId属性的通用策略?,wpf,silverlight,ui-automation,acceptance-testing,Wpf,Silverlight,Ui Automation,Acceptance Testing,AutomationProperties.AutomationId附加属性似乎有两个用途: 在自动验收测试期间识别UI控件 可访问性 在许多情况下,UI控件在运行时生成(例如数据绑定的TreeView),这会迫使验收测试使用其他方法搜索控件,那么什么时候为AutomationId实际设置一个值是有意义的,什么值?决定哪些控件应该有它们,哪些不应该有它们,这是一个偶然的过程吗?或者所有开发人员都可以遵循一些一般准则?AutomationId实际上是用于测试目的的,因此如何使用它取决于您希望如何测试

AutomationProperties.AutomationId附加属性似乎有两个用途:

  • 在自动验收测试期间识别UI控件
  • 可访问性
    在许多情况下,UI控件在运行时生成(例如数据绑定的TreeView),这会迫使验收测试使用其他方法搜索控件,那么什么时候为AutomationId实际设置一个值是有意义的,什么值?决定哪些控件应该有它们,哪些不应该有它们,这是一个偶然的过程吗?或者所有开发人员都可以遵循一些一般准则?

    AutomationId实际上是用于测试目的的,因此如何使用它取决于您希望如何测试应用程序(或者,对于由团队而非个人构建的应用程序,测试组希望如何测试应用程序)。AutomationId的关键用途是允许测试代码可靠地查找元素,而不必引用名称之类的内容,名称可以在不同的本地化版本中更改(或者在开发过程中随着UI的调整而更改)。根本不需要使用AutomationId;若测试有一些其他的方法来识别元素,他们可以使用它来代替,而不指定AutomationId

    可访问性通常不使用它。它对最终用户没有任何意义,也不能保证在任何给定的控件中都存在;所以用它做什么都没用


    测试和可访问性确实有一些重叠;UIAutomation的某些部分既服务于两者,也服务于一个或另一个;AutomationId是专门用于测试的一部分。

    AutomationId实际上是用于测试目的,因此您如何使用它取决于您希望如何测试您的应用程序(或者,对于由团队而非个人构建的应用程序,测试组希望如何测试该应用程序)。AutomationId的关键用途是允许测试代码可靠地查找元素,而不必引用名称之类的内容,名称可以在不同的本地化版本中更改(或者在开发过程中随着UI的调整而更改)。根本不需要使用AutomationId;若测试有一些其他的方法来识别元素,他们可以使用它来代替,而不指定AutomationId

    可访问性通常不使用它。它对最终用户没有任何意义,也不能保证在任何给定的控件中都存在;所以用它做什么都没用


    测试和可访问性确实有一些重叠;UIAutomation的某些部分既服务于两者,也服务于一个或另一个;AutomationId是专门用于测试的部件之一。

    它是任意的。QA团队应该知道他们在自动化UI测试期间需要的控件,并且您需要为他们单独分配唯一的Id,以简化测试人员的工作。至少我是这样理解的。我没有遇到任何关于这方面的指导方针。

    这是武断的。QA团队应该知道他们在自动化UI测试期间需要的控件,并且您需要为他们单独分配唯一的Id,以简化测试人员的工作。至少我是这样理解的。我没有遇到任何关于这方面的指导方针