Не удалось открыть главное окно после 30 попыток: kAXErrorServerNotFound.

У меня есть набор из 26 тестов. Иногда некоторые тесты, любые тесты, завершатся со следующей ошибкой:

Test Case ...
    t =     0.00s     Start Test at 2017-06-21 13:41:15.265
    t =     0.00s     Set Up
    t =     0.11s     Launch com.company.MyApp
    t =     4.06s         Wait for app to idle
    t =    10.27s             Unable to monitor animations
    t =    16.45s             Unable to monitor event loop
    t =    17.67s     Snapshot accessibility hierarchy for com.company.MyApp
    t =    23.84s         Assertion Failure: <unknown>:0: Failure getting snapshot Error Domain=XCTDaemonErrorDomain Code=12 "Failed to get main window after 30 retries: kAXErrorServerNotFound (see <rdar://problem/15530121>)" UserInfo={NSLocalizedDescription=Failed to get main window after 30 retries: kAXErrorServerNotFound (see <rdar://problem/15530121>)}
    t =    23.85s         Tear Down

Тесты не отображаются как неудавшиеся в отчете при использовании Xcode 8, но они отображаются при использовании Xcode 9. С Xcode 9 проблема аналогична, но журналы разные.

t =     0.00s Start Test at 2017-06-22 14:17:00.716
t =     0.08s Set Up
t =     0.18s Open com.company.MyApp
t =     0.26s     Launch com.company.MyApp
t =     3.39s         Wait for com.company.MyApp to idle
t =     9.58s             Unable to monitor animations
t =    15.76s             Unable to monitor event loop
t =    16.90s Snapshot accessibility hierarchy for app with pid 18003
t =    23.17s Tap "More" Button
t =    23.17s     Wait for com.company.MyApp to idle
t =    29.41s         Unable to monitor animations
t =    35.59s         Unable to monitor event loop
t =    35.61s     Find the "More" Button
t =    35.61s         Snapshot accessibility hierarchy for app with pid 18003
t =    41.92s         Wait for com.company.MyApp to idle
t =    48.16s             Unable to monitor animations
t =    54.34s             Unable to monitor event loop
t =    55.36s         Find the "More" Button (retry 1)
t =    55.37s             Snapshot accessibility hierarchy for app with pid 18003
t =    61.69s             Wait for com.company.MyApp to idle
t =    67.92s                 Unable to monitor animations
t =    74.10s                 Unable to monitor event loop
t =    75.12s         Find the "More" Button (retry 2)
t =    75.12s             Snapshot accessibility hierarchy for app with pid 18003
t =    81.44s             Wait for com.company.MyApp to idle
t =    87.66s                 Unable to monitor animations
t =    93.86s                 Unable to monitor event loop
t =    94.00s Assertion Failure: report.feature:11: Failed to get main window after 30 retries: kAXErrorServerNotFound (see <rdar://problem/15530121>)
t =    94.21s Find the Window
t =    94.21s     Snapshot accessibility hierarchy for app with pid 18003
t =   101.35s     Find the Window (retry 1)
t =   101.35s         Snapshot accessibility hierarchy for app with pid 18003
t =   108.53s     Find the Window (retry 2)
t =   108.53s         Snapshot accessibility hierarchy for app with pid 18003
t =   114.79s Assertion Failure: report.feature:10: Failed to get main window after 30 retries: kAXErrorServerNotFound (see <rdar://problem/15530121>)
t =   114.79s Tear Down

Скриншоты в отчете показывают, что приложение запущено и бездействует.

Обновить

Я воспроизвел проблему в примере проекта, который представляет собой простое приложение с контроллером представления панели вкладок.

Обновить

Кажется, в примечаниях к выпуску Xcode 9 Beta 6 есть известная проблема, касающаяся этого

Тест xcodebuild может периодически завершаться ошибкой с «Domain=XCTestManagerErrorDomain Code=12 «Не удалось получить главное окно после 30 попыток»». (29122169)

Временное решение. Повторите попытку.

Будем надеяться, что это будет исправлено до окончательного выпуска Xcode 9.


person Titouan de Bailleul    schedule 21.06.2017    source источник


Ответы (1)


Я боролся с этой точно такой же проблемой в Xcode 8.3.2 — грустно слышать, что бета-версия Xcode 9 еще не исправила это :(

Единственным надежным решением на данный момент является сброс устройств iOS Simulator. Например:

osascript -e 'tell application "Simulator" to quit'
xcrun simctl erase all

Если вы знаете идентификатор своего устройства, вы можете сбросить его:

xcrun simctl erase DEVICE_ID

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

person Paulo Mattos    schedule 04.07.2017
comment
Спасибо. Однако я провожу свои тесты на устройстве. Любое решение для этого? - person Titouan de Bailleul; 05.07.2017
comment
Хм... вы можете попробовать удалить приложение (и тесты пользовательского интерфейса) с устройства. Но это не всегда работало для меня и в прошлом. - person Paulo Mattos; 05.07.2017