#c# #coded-ui-tests #uniqueidentifier
#c# #coded-ui-тесты #уникальный идентификатор
Вопрос:
Мы помогаем тестировщикам, которые пишут тесты CodedUI для нашего проекта. Проблема, с которой они сталкиваются, заключается в том, что несколько динамически добавляемых элементов управления не имеют уникального значения для определения того, что есть что.
Мое теоретическое решение состояло в том, чтобы добавить общедоступное пользовательское свойство с именем «CodedUiName», чтобы тестировщики могли сопоставлять элемент управления с этим именем. Я сделал это, установив интерфейс ICodedUI поверх элемента управления и предоставив вышеупомянутое свойство.
Я проверил это свойство с помощью редактора объектов HawkEye, и оно действительно есть, но когда тестировщики делают то же самое в CodedUI, свойство не отображается.
Есть ли у них способ легко получить доступ к «CodedUiName».
Мы хотели бы, чтобы это было хорошее масштабируемое решение для любых проблемных элементов управления, с которыми мы можем столкнуться при написании тестов CodedUI.
Комментарии:
1. Не могли бы вы представить свой код, пожалуйста?
2. можете ли вы добавить логическое имя к каждому динамически добавляемому элементу управления?
3. Разве нет идентификатора, который вы должны добавлять к каждому элементу управления? Что-то вроде
AutomationID
?4. Я не уверен, как работает тест CodedUI, но, чтобы отслеживать мои динамически созданные элементы управления, я использовал
Dictionary<[key], Control>
. В моем случае[key]
это aForm
. Значит, всеControl
ссылки находятся в одном «месте», на которое вы можете посмотреть? (не уверен, поможет ли это) // Кроме того, разве нельзя было бы просто использоватьControl.Equals(Control)
, чтобы отличить их друг от друга? Используя их ссылки на память в качестве идентификаторов?5. Установите «Свойства автоматизации. AutomationIdProperty» для каждого элемента управления.