Назад | Перейти на главную страницу

Запуск симулятора iPhone в Azure в фоновом режиме

Я создаю кроссплатформенный проект C ++, в котором есть модульные тесты, написанные с googletest framework, и есть проблемы, с которыми я сталкиваюсь при попытке запустить модульные тесты на симуляторе iPhone в Azure DevOps.

Проблема в xcrun simctl launch выполняет приложение на симуляторе iPhone, но также, кажется, ожидает завершения приложения симулятора, чтобы вернуться в консоль, поэтому я попытался запустить его в фоновом режиме с помощью & и подождите 30 секунд (этого должно быть достаточно для завершения модульных тестов) и убейте его, но похоже & просто не влияет на Azure, а конвейер просто останавливается навсегда и никогда не достигает sleep 30 инструкция. Я просмотрел документацию по Azure, но, похоже, не нашел ни одной подсказки.

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

jobs:
- job: BuildJob
  pool:
    vmImage: 'macOS-10.13'

  - template: ios-single-build.yml
    parameters:
      sdk: '11'
      arch: 'x86_64'
      config: ${{ parameters.config }}
      sysroot: 'iphonesimulator'

  - bash: |
      # npm install ios-sim -g
      UUID=`xcrun simctl list | grep 'iPhone X' | cut -d'(' -f2 | cut -d')' -f1 | grep -v apple | head -n 1`
      xcrun simctl boot $UUID
      xcrun simctl install booted $(Build.BinariesDirectory)/unit-tests/google_test.app
      xcrun simctl launch booted test.google.app >/dev/null 2>&1 &
      sleep 30
      kill %1
      OUT=`find ~/Library/Developer/CoreSimulator/Devices/$UUID/data/Containers/Data/Application/ -name test_results.txt`
      cat $OUT
    displayName: 'Run unit tests'

Так есть ли какие-то ограничения, чтобы не запускать процессы в фоновом режиме в Azure? Есть ли другие способы запустить симулятор iPhone? Кстати, я тоже пробовал ios-sim утилита, но также ожидает завершения работы симулятора.