使用PHP/终端自动化iOS测试


Automating iOS Testing with 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运行,在此之前,我根本无法打开模拟器。

首先,您需要在sudoers文件中允许这样做。

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

其中www数据是apache运行时的用户。第二您需要在shellexec中拥有完整的路径名。

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

不确定shell中的$PATH变量在这里是如何使用的,因此可能需要在hello脚本中添加以下内容:

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