Для выполнения закодированных тестов пользовательского интерфейса в Silverlight 5 вам необходимо обновить помощник по автоматизации закодированного пользовательского интерфейса отсюда: Галерея Visual Studio: Плагин UI Test для Silverlight Старый плагин, поставляемый с VS2010, работает, но только на SL4 и ниже.
SL5 был реализован немного иначе, и он нарушил закодированные тесты пользовательского интерфейса, что побудило разработчиков переключиться на VS2012 и новый плагин автоматизации пользовательского интерфейса (как вы обнаружили).
После установки исполняемого файла UITestPluginForSilverlight.msi вам необходимо указать эти сборки в части Silverlight вашего проекта (которая у вас уже есть).
Насколько я помню, причина, по которой ваши закодированные тесты пользовательского интерфейса сломались в VS2010, но работают в VS2012, заключается в том, что файлы SL5 и SL4 UIMap.designer.cs, которые генерируются тестовыми рекордерами, не очень совместимы друг с другом.
Записи SL4, созданные с помощью помощника автоматизации SL4, не будут работать с версией SL5 AutiomationHelper. Однако SL5 Autiomation Helper будет работать с записями SL4, если эти записи созданы VS2012.
Итак, чтобы уточнить: когда вы используете диктофон, он создает файл UIMap. Файл карты состоит из трех частей:
- XML-листинг всех записанных методов
- Дизайнер сгенерировал частичный класс за скрытым кодом.
- Частичный класс пользователя.
Если вы проверите сгенерированный дизайнером код позади файла, вы действительно сможете понять, что записывающее устройство генерирует большой объем кода для поиска элементов управления и взаимодействия с ними.
Для каждого элемента управления, обнаруживаемого регистратором, он объявляет экземпляр соответствующего объекта тестирования / взаимодействия.
При объявлении этих объектов регистратор определяет набор свойств, доступных для обнаружения / поиска. В следующий раз, когда воспроизведение будет выполнено, оно берет эти свойства и использует их для поиска фактического элемента управления.
Кроме того, у всех элементов управления есть родительский элемент, поэтому регистратор обязательно указывает родительский элемент пользовательского интерфейса для каждого обнаруженного элемента управления. Для SL4 и SL5 родители следующие:
- Окно браузера
- HTML-страница
- Div (содержащий среду выполнения silverlight)
- SL Object (плагин SL Runtime)
- Основной элемент пользовательского интерфейса SL (обычно волнистый индикатор)
- Рамки навигации
- Внутренние страницы
- Управление
Конструктор:
- Родительский контроль / объект взаимодействия
Искать свойства:
- Заголовок страницы: общая строка, отображаемая заголовком окна браузера.
- Номер экземпляра: (для списков начинается с 1 ... что странно)
- Идентификатор элемента управления: (определяется атрибутами xaml Name или x: Name)
- Отображаемое имя: это применимо для элементов поля со списком / списка, поскольку оно работает путем объединения всего, что отображается в элементе элемента поля со списком / списка, в сочетании с номером экземпляра этого элемента: например:
Поле со списком с двумя элементами, каждый из которых называется «Элемент списка», можно обнаружить по следующим отображаемым именам:
«Элемент списка: 1» и «Элемент списка: 2»
- Любая комбинация и перестановка атрибутов поиска (их можно посмотреть).
Короче говоря, реальные объекты взаимодействия, генерируемые регистраторами, в SL4 и SL5 различны. Это означает, что вы не можете взять один UIMap.designer.cs и заменить его другим. Платформа тестирования (и связанные с ней объекты взаимодействия, используемые в UIMap.designer.cs) не совместимы на двоичном уровне. Вот почему ваше воспроизведение не работает.
person
bleepzter
schedule
24.09.2013