2013-04-03 3 views
8

Я пытаюсь выполнить некоторые кодированные тесты пользовательского интерфейса с Visual Studio 2010 на моем сайте SharePoint 2010. Отдельный файл в SharePoint запускает мое приложение Silverlight в отдельном окне. Я добавил сборку SilerlightUIAutomationHelper в качестве ссылки во всех моих проектах Silverlight, которые ее запускают. Это должно позволить мне записывать действия внутри него, но он всплывает с сообщением об ошибке при попытке записи в моем Silverlight приложения:Coded UI Test не находит SilverlightUIAutomationHelper assembly

No Silverlight controls were detected. Verify that the application under test 
is built using Silverlight assemblies with a version of 4.0 or greater and that 
a reference to the Microsoft.VisualStudio.TestTools.Extension.SilverlightUIAutomationHelper.dll 
assembly has been added to the project. 

Я бегу Silverlight 5.0, так что не может быть проблемой , Я также проверил, что DLL SilverlightUIAutomationHelper внесла его в пакет xap.

Я был в состоянии успешно записывать эти действия в SharePoint 2013/Visual Studio 2012 с этим расширением: http://visualstudiogallery.msdn.microsoft.com/28312a61-9451-451a-990c-c9929b751eb4

Любая идея, почему это происходит? Что я могу сделать, чтобы исправить это?

+0

Вы используете недавний Internet Explorer, как предлагается на странице расширения, с которой вы связались? – jv42

+0

@ jv42 Да, я пробовал это с IE8 и 9 – tnw

+0

Несколько раз кодированные тесты пользовательского интерфейса - это странно, попробуйте вручную щелкнуть по элементу управления серебристым светом, когда он ищет элементы управления, чтобы увидеть, найдет ли он это. –

ответ

4

Для того, чтобы выполнить тесты кодированного интерфейса в Silverlight 5, вам необходимо обновить помощник по кодированию кодированного интерфейса: Visual Studio Gallery: UI Test Plugin for Silverlight Старый, который поставляется с VS2010, работает только на SL4 и ниже.

SL5 был реализован бит немного по-другому, и он нарушил тесты кодированного интерфейса, поэтому предложил разработчикам перейти на VS2012 и новый плагин автоматизации пользовательского интерфейса (как вы обнаружили).

После установки исполняемого файла UITestPluginForSilverlight.msi вам необходимо ссылаться на эти сборки в части Silverlight вашего проекта (которые у вас уже есть).

Насколько я помню, и причина, по которой ваши кодированные пользовательские интерфейсы нарушаются в VS2010, но работает в VS2012, заключается в том, что файлы SL5 и SL4 UIMap.designer.cs, которые генерируются тестовыми регистраторами, не очень совместимы с каждым Другие.

Записи SL4 Сгенерированный с помощью помощника по автоматизации SL4 не будет работать с версией AutorationHelper SL5. Однако SL5 Autiomation Helper будет работать с записями SL4, если эти записи создаются VS2012.

Итак, чтобы уточнить: когда вы используете рекордер, он создает файл UIMap. Файл карты имеет три части к нему:

  1. XML каталог всех записанных методов
  2. конструктор сгенерированного кода За частичного класса.
  3. Пользовательский частичный класс.

Если вы проверяете созданный конструктором код за файлом, вы можете понять, что рекордер генерирует много кода для поиска элементов управления и взаимодействия с ними.

Для каждого элемента управления рекордер обнаруживает, что он представляет экземпляр соответствующего объекта тестирования/взаимодействия.

При объявлении этих объектов рекордер определяет группу доступных для поиска/поисковых свойств. В следующий раз, когда воспроизведение выполняется, оно берет эти свойства и использует их для поиска фактического элемента управления.

Кроме того, все элементы управления имеют родительский элемент, поэтому регистратор обязательно указывает родительский элемент пользовательского интерфейса для каждого обнаруженного элемента управления.Для SL4 и SL5 родители являются следующие:

  • Browser Window
  • HTML Page
  • Div (проведение SilverLight выполнения)
  • SL Object (SL выполнения плагин)
  • Main SL UI Element (обычно Squigly Buzy индикатор)
  • Navigation Рамки
  • Внутренние страницы
  • Управление

Конструкторы:

  1. Родительский контроль/Взаимодействие объекта

Поиск недвижимости:

  1. Название страницы: Общая строка, которая оказывает заголовок окна браузера.
  2. Instance Номер: (начинается с 1 по спискам ... что странно)
  3. Id управления: (определяется по имени или х: Имя атрибутов XAML)
  4. Display Name: Это ненадежный для комбинированного окна/элементы списка, как это работает , комбинируя все, что оказывается в поле со списком/списка элементов элемента в сочетании с экземпляра количества этого элемента, например:

выпадающий с двумя элементами, каждый из которых назван «Список элементов» могут быть обнаружены следующими отображаемыми именами:

«Элемент списка: 1» и «Элемент списка: 2»

  1. Любая комбинация и перестановка атрибутов поиска (вы можете посмотреть их).

Короче говоря, фактические объекты взаимодействия, созданные рекордерами, различаются в SL4 и SL5. Это означает, что вы не можете взять один UIMap.designer.cs и заменить его другим. Структура тестирования (и связанные с ней объекты взаимодействия, используемые в UIMap.designer.cs) не совместимы с бинарными. Вот почему ваше воспроизведение не может работать.

Смежные вопросы