Тестирование пользовательского интерфейса Xcode: могу ли я использовать сценарии тестирования пользовательского интерфейса для доступа к папке целевого приложения?

Когда я создаю сценарии тестирования пользовательского интерфейса, я сталкиваюсь с проблемой. Мне нужен доступ к файлу журнала, который создается в целевой папке документов приложения. Однако приложение для тестирования пользовательского интерфейса работает как другой поток.

 NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);

Этот метод может возвращать только путь к документу приложения для тестирования пользовательского интерфейса, а не к целевому приложению.

Есть ли способ получить доступ к папке целевого приложения?


person June    schedule 01.09.2015    source источник


Ответы (2)


Поскольку ваше приложение находится в песочнице, вы не можете получить доступ к каталогу документов этого приложения. Обратитесь к https://developer.apple.com/library/ios/#documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/TheiOSEnvironment/TheiOSEnvironment.html#//apple_ref/doc/uid/TP40007072-CH9-SW1

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

person Rajesh    schedule 01.09.2015
comment
Большое спасибо за ваш любезный ответ. Это было бы немного грустно. Если целью тестирования является Unit Test, он получит каталог. Однако для тестирования пользовательского интерфейса кажется, что оно запускается как другое приложение. :( - person June; 01.09.2015
comment
@ Июнь - Я бы порекомендовал вам отправить в Apple радар с запросом функции. Таким образом они могут знать, что в их дизайне есть ограничение, которое нужно разработчикам. - person Apophenia Overload; 03.09.2015

Я написал об этом короткую запись в блоге.

Кратковременным решением для меня было создание UITextField, о котором пользователь не знал. Цель UITesting будет взаимодействовать с textField и вводить код как часть UITest.

После запуска любого заданного UITest первое взаимодействие было с текстовым полем. Текстовое поле станет первым респондентом (с использованием тега доступности), что приведет к перемещению клавиатуры по экрану.

Затем тест продолжит взаимодействие с клавиатурой и наберет строку перед нажатием клавиши «возврат» на клавиатуре. Клавиатура закрыта, и строка была отправлена ​​в UITextFieldDelegate.

Строка представляет имя файла. Я установил систему кодов, которые соответствовали архивам .zip, которые я спрятал. Каждый код, набранный различными тестами, соответствовал zip-файлам, которые содержали версию необходимых мне данных в каталоге docs.

Так что это был просто случай распаковки данных и их записи в папку docs до продолжения UITest.

Я отправил в Apple запрос функции для доступа к каталогу документации приложения-кандидата через цель UITest.

person Community    schedule 15.12.2016