Leg*_*las 4 iphone xcode objective-c ui-automation
所以我UIAutomation在命令行上运行
$ instruments -t /Developer/Platforms/iPhoneOS.platform/Developer/Library/Instruments/PlugIns/AutomationInstrument.bundle/Contents/Resources/Automation.tracetemplate
<path-to-your-app>/<appname>.app/ -e UIASCRIPT <path-to-your-js-test-file> -e
UIARESULTSPATH <path-to-results-folder>
Run Code Online (Sandbox Code Playgroud)
这工作正常,模拟器打开,应用程序运行,但卡住此错误.
Failed to authorize rights (0x2) with status: -60007
Run Code Online (Sandbox Code Playgroud)
我认为这与权限有关.
我该怎么做?
这里甚至是关于Xcode命令行授权提示错误的博文
我会在这里再解释一下:
我做的是以下内容:
将allow-root的值更改为true
<key>system.privilege.taskport</key>
<dict>
<key>allow-root</key>
<false/> // change to -> <true>
<key>class</key>
<string>user</string>
<key>comment</key>
<string>Used by task_for_pid(...).
...
</dict>
Run Code Online (Sandbox Code Playgroud)现在我可以使用jenkins通过命令行脚本运行我的UIAutomation-Tests
编辑
为了让jenkins认识到一个成功的构建,我没有一个完美的解决方案,但以下解决方法:
...
echo "Run instruments simulator"
instruments -t "$ORDER_AUTOMATION_TEST_TEMPLATE_PATH" "$FILE_DEBUG_APP" -e UIASCRIPT "$ORDER_AUTOMATION_TESTSCRIPT_PATH" -e UIARESULTSPATH "$DIRECTORY_INSTRUMENTS_RESULT"
returnCode=0
if test -a "Run 1/Assertion failed.png"; then
echo "failed"
returnCode=1
else
echo "passed"
returnCode=0
fi
rm -fR "Run 1"
rm -fR "instrumentscli0.trace"
echo "Removing app dir"
echo "$FILE_APPLICATIONS"
rm -fR "$FILE_APPLICATIONS"
echo $returnCode
exit $returnCode
Run Code Online (Sandbox Code Playgroud)
编辑2 检查自动化测试是否成功运行的更好方法:
# cleanup the tracefiles produced from instruments
rm -rf *.trace
##kill simulator afterwards
killall "iPhone Simulator"
##check if failures occured
# fail script if any failures have been generated
if [ `grep "<string>Error</string>" "$WORKSPACE/Automation Results/Run 1/Automation Results.plist" | wc -l` -gt 0 ]; then
echo 'Build Failed'
exit -1
else
echo 'Build Passed'
exit 0
fi
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1986 次 |
| 最近记录: |