2014-01-15 18 views
0

У меня есть приложение WinForm, которое является целевой целью для файлов и папок. Я хотел бы использовать Coded UI, чтобы иметь автоматические тесты, которые проверяют приложение, что я думаю, что он должен делать, когда на него были сброшены файлы.Использование кодированного пользовательского интерфейса для имитации операции перетаскивания файлов

Я использовал кодированный пользовательский интерфейс для записи этой операции, но мне нужно обобщить его и заставить его работать на CI-сервере. Поэтому я в основном хочу запустить тест с некоторыми предустановочными файловыми путями (файлы могут быть созданы как часть тестовой установки), а затем просто инициировать передачу события пересылки в пути к файлам в файловой системе.

Coded UI записывает тест, но производит испытание, как:

WinListItem uIContactcshtmlListItem = this.UIProgramManagerWindow.UIDesktopList.UIContactcshtmlListItem; 
WinText uIDragDropFilesHereText = this.UIMyApp.UIDragDropFilesHereWindow.UIDragDropFilesHereText; 
uIDragDropFilesHereText.EnsureClickable(new Point(84, 13)); 
Mouse.StartDragging(uIContactcshtmlListItem, new Point(17, 35)); 
Mouse.StopDragging(uIDragDropFilesHereText, new Point(84, 13)); 

«uIContactcshtmlListItem», как представляется, представляют собой исходные файлы, которые я отброшен. (Файл contacts.cs является одной из вещей, которые я перетаскивал/удалял во время записи.) Я хочу заменить это только некоторыми файловыми путями, но это, по-видимому, является элементом управления типом элемента списка из Explorer.

Есть ли способ выполнить то, что я хочу? Возможно, создав WinListItem в коде вручную?

ответ

0

Это, как я хотел бы сделать это (требует кодирования):

Запись открытия окна проводника, пишущий в адресной строке и нажмите клавишу ввода. Затем запишите перетаскивание файла в приложение (перетащите его по его значку, чтобы избежать будущих разочарований). Добавьте свои утверждения. Записывает закрытие окна проводника. Это должны быть четыре метода плюс утверждения: открыть проводник, задать адрес, файл перетаскивания, закрыть проводник.

Теперь у вас есть базовые методы. Вызовите метод, который сначала откроет проводник, а затем петлю через ваши пути входных файлов. В цикле: задайте параметры для методов «set address» и «drag files» для файла (вы можете проверить текущий каталог в проводнике и только при необходимости вызвать «set address») и свойство поиска имени для ListItem UIControl (элемент управления/файл, который вы хотите перетащить). Вызовите Find() в ListItem/Image UIControl или установите AlwaysSearch для этого элемента управления в UIMap (вам это нужно, потому что мы повторно используем здесь UIControl, который кэшируется на предыдущем объекте), затем вызывается метод «drag file». Затем проверьте свои утверждения.

Наконец-то вызовите метод «close explorer». Вам, вероятно, придется немного поработать в UIMap, чтобы все работало правильно (измените свойства поиска и прочее).

Конечно, это не единственный способ сделать это, не самый лучший, но может быть хорошим началом.

0

Изменить параметр поиска

WinListItem uIContactcshtmlListItem = this.UIProgramManagerWindow.UIDesktopList.UIContactcshtmlListItem; 

WinText uIDragDropFilesHereText = this.UIMyApp.UIDragDropFilesHereWindow.UIDragDropFilesHereText; 

uIContactcshtmlListItem.SearchProperties.Remove(UITestControl.PropertyNames.Name); 
uIContactcshtmlListItem.SearchProperties.Add("Name", "ItemName" or variable); 
or uIContactcshtmlListItem.SearchProperties.Add("Name", "PartOfTheName", PropertyExpressionOperator.Contains); 


uIDragDropFilesHereText.EnsureClickable(new Point(84, 13)); 

Mouse.StartDragging(uIContactcshtmlListItem, new Point(17, 35)); 
Mouse.StopDragging(uIDragDropFilesHereText, new Point(84, 13)); 
Смежные вопросы