2015-02-04 2 views
1

У меня есть автоматический тестовый сценарий, написанный в UIAutomation. Если я запустил его из Инструмента, все тесты пройдут. Если я запустил его из командной строки, один из тестовых примеров завершится неудачей и приведет к завершению работы тестового скрипта.Различные результаты тестов от инструмента и командной строки

Неисправный тестовый пример - это запуск UIAActivityIndictor, а затем отображение окна предупреждения.

Я сделал поиск в Интернете, и люди говорят, что командная строка быстрее, чем Инструмент. Иногда вам необходимо убедиться, что значение UIAElement действительно. Однако в моем случае, в этом случае, кажется, что командная строка потеряла иерархию приложения UIAElements. Результат logElementTree - это только цель и приложение, а не окно вообще. И пользовательский интерфейс кажется замороженным.

Любые предложения были бы полезными.

+0

Вы пробовали добавить задержку прямо перед линией отказа? В моих тестах мне пришлось преднамеренно замедлить некоторые разделы, потому что инструмент автоматизации был достаточно быстрым, чтобы поймать приложение в состоянии перехода, например, когда диалог все еще исчезал. Возможно, консоль быстро ускорила ваш код, чтобы вызвать такую ​​проблему. – Braains

+0

Да, я добавил задержку. Но проблема в том, что каким-то образом тест потерял всю иерархию представлений. – hqfking

+0

Я заметил много неустойчивого поведения с Инструментами, но все мои были связанными со временем вопросами, поэтому я был наделен тем, что, возможно, это и слово для вас! – Braains

ответ

1

Я столкнулся с подобными проблемами. Когда пользовательский интерфейс полностью заморожен, это означает, что приложение было помещено в бесконечный цикл. В моем случае NSLog с огромным выходом был причиной. Чтобы проверить, что: 1) поместите действительно большой сон в какой-то момент в вашем скрипте 2) запустите скрипт 3) прикрепите xcode к приложению: debug-> attach to process-> процесс вашего приложения 4) дождитесь замораживания бывает. Удостоверьтесь в этом вручную 5) в xcode press pause execute 6) теперь вы можете видеть в стеке, где приложение висит

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