Xcode Server CI Bot Test Session завершился (-1)

Я получаю сообщение об ошибке при попытке запустить тесты на XcodeServer для устройств-симуляторов. Тесты иногда проходят для одного устройства и не проходят для другого, но неисправное устройство не всегда одно и то же. Это может произойти за один сеанс.

Ошибка файла журнала выглядит следующим образом:

2015-03-23 10:44:11.029 Initializing test infrastructure.
2015-03-23 10:44:11.029 Writing testing status log to /Library/Developer/XcodeServer/Integrations/Integration-7e6e54f21a2fd25cddc9df0436cb3688/Session-2015-03-23_10:44:10-tH1BD4.log.
2015-03-23 10:44:28.676 Launch session started, setting a disallow-finish-token on the run operation.
2015-03-23 10:44:30.352 Adding console adaptor for test process.
2015-03-23 10:44:39.566 Creating the connection.
2015-03-23 10:44:39.567 Listening for proxy connection request from the test bundle (all platforms)
2015-03-23 10:44:39.567 Resuming the connection.
2015-03-23 10:44:39.567 Test connection requires daemon assistance.
2015-03-23 10:44:39.568 Checking test manager availability..., will wait up to 120s
2015-03-23 10:45:05.253 testmanagerd handled session request.
2015-03-23 10:45:05.254 Waiting for test process to check in..., will wait up to 120s
2015-03-23 10:46:47.578 Test operation failure: Test session exited(-1) without checking in.
2015-03-23 10:46:47.645 _finishWithError:Error Domain=IDEUnitTestsOperationsObserverErrorDomain Code=3 "Test session exited(-1) without checking in." UserInfo=0x7f8be43e40c0 {NSLocalizedDescription=Test session exited(-1) without checking in.} didCancel: 1

Любые идеи будут действительно полезны.


person Caroline    schedule 23.03.2015    source источник
comment
Вы нашли решение? У меня тоже такая же проблема, не могу найти информативного лога.   -  person Nimrod Gutman    schedule 29.04.2015
comment
Не совсем. Это перестало происходить, но я не могу объяснить, почему. Мы обновились до последней версии Xcode и OS X Server, а также убедились, что реализовали разрыв, если что-то зависло. До сих пор все было в порядке.   -  person Caroline    schedule 29.04.2015


Ответы (2)


Для запуска симулятора требуется пользовательский контекст GUI. Если сервер запускается из /Library/LaunchDaemons, то он работает в системном (корневом) контексте и не имеет контекста графического интерфейса. Это проблема при использовании Atlassian Bamboo а также Jenkins для CI. Разработчики Facebook также столкнулись с этой проблемой при использовании xctool.

Возможно, вам потребуется запустить XcodeServer из пользовательского контекста, т. е. создать файл plist в ~/Library/LaunchAgents и обеспечить постоянный вход этого пользователя в систему. Я думаю, что Apple решит эту проблему во время установки.

person skitheo    schedule 10.08.2015
comment
А также убедитесь, что в LaunchAgents вы действительно разрешаете ему работать в сеансе GUI. Я добавил <key>LimitLoadToSessionType</key><string>Aqua</string> в этот файл launchd.plist, и он заработал! - person ReDetection; 16.10.2015

Попробуйте запустить эту команду на сервере:

sudo /usr/sbin/DevToolsSecurity --enable

подробнее в этом ответе

person Anton    schedule 06.08.2015