2015-12-11 2 views
4

Как настроить Travis для запуска своих случаев UI XCTest для OSX? Тест Travis терпит неудачу, потому что в OSX Xcode Helper требует разрешения использовать Accessibility для тестового экземпляра. Есть ли способ настроить экземпляр Travis для предоставления разрешения для Xcode Helper использовать доступность до запуска xcodebuild?Проверка Xcode UI на Travis для OSX с помощью Xcode Helper Доступность

Я использую последнюю конфигурацию Xcode 7.2 Travis с OSX 10.11.1, и я запускаю свои тесты с использованием xcodebuild в качестве скрипта Travis, потому что xctool does not yet support running UI tests. Если вы попытаетесь использовать xctool, вы получите сообщение об ошибке, что тестовый комплект не содержит исполняемого файла.

Я считаю, что другие люди выполнили тесты UI на Travis для iOS, потому что они запускаются в симуляторе и не требуют, чтобы Xcode Helper имел разрешения на доступ.

Вот мой .travis.yml файл (слегка затемненный):

osx_image: xcode7.2 
language: objective-c 
xcode_workspace: MyApp.xcworkspace 
xcode_scheme: MyAppUITests 

jdk: 
    - oraclejdk8 

install: 
    - pod install 
    - gem install xcpretty --no-rdoc --no-ri --no-document --quiet 
    - xcodebuild -workspace MyApp.xcworkspace -scheme MyAppUITests -destination 'platform=OS X,arch=x86_64' clean build | xcpretty -c || true 

script: 
    - xcodebuild -workspace MyApp.xcworkspace -scheme MyAppUITests -destination 'platform=OS X,arch=x86_64' test 

ответ

11

Я нашел секретный соус, чтобы исправить эту проблему. Добавьте следующее колдовство к вашему .travis.yml в установке: разделе:

- sudo sqlite3 "/Library/Application Support/com.apple.TCC/TCC.db" "INSERT INTO access VALUES ('kTCCServiceAccessibility','com.apple.dt.Xcode-Helper',0,1,1,NULL,NULL);" 

Это добавляет запись в базу данных доступа, используемых для определения прав доступа. Ба-бац!

+5

Ужасный взлом, любите его –