Автоматизация iOS-тестирования с помощью PHP / Terminal

Я пытаюсь создать службу тестирования, которая будет запускать мои тесты iOS JS с веб-сайта. Например, я захожу на свой сайт, использую PHP для создания ссылок для каждого из файлов .js в определенной папке, а затем нажимаю ссылку, чтобы начать тестирование. Когда я нажимаю на ссылку, я использую PHP-файл bash .sh на компьютере. Затем файл .sh запускает тест.

Если я запускаю .sh файл локально, он прекрасно работает. Если я запускаю его с моего сайта, симулятор открывается, но приложение никогда не открывается. Я получаю сообщение об ошибке, указывающее, что истекло время ожидания поиска устройства симулятора.

Есть идеи, почему я не могу заставить это работать?

Мой php-файл содержит следующую строку для запуска скрипта bash:

$output = "<pre>" . shell_exec('sudo ./hello.sh 2>&1') . "</pre>";

Я отредактировал свой файл visudo, чтобы этот файл hello.sh мог запускаться также как sudo, но до этого я не мог вообще открыть симулятор.

0

Решение

Сначала вам нужно разрешить это в вашем файле sudoers.

www-data ALL = NOPASSWD: /path/to/script/hello.sh

где www-data — это пользователь, который работает как apache.
Во-вторых. вам нужно иметь полный путь в shell_exec.

$output = "<pre>" . shell_exec('sudo /path/to/script/hello.sh 2>&1') . "</pre>";

Не уверен, как здесь используется переменная $ PATH в вашей оболочке, поэтому может оказаться, что вы должны добавить следующее в ваш сценарий приветствия:

export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
0

Другие решения

Других решений пока нет …