Android在使用脚本编译和测试时,使用默认的testrunner不会输出文件类型的单元测试报告,每次只能分析logcat的无法直观的看到单元测试结果和报告,这给编写自动化脚本带来了不少麻烦,虽然可以自己动手编写支持junit测试报告输出的TestRunner,但是比较麻烦。除此之外,有一个android-junit-report.jar的开源包可以拿来使用,使用方法也很简单,输出的单元测试报告也可以为多种报告分析工具分析。具体使用方法如下:
这里假设Android APP的包名为com.xxx.xxx
方法1:使用Eclipse IDE方式
1.下载android-junit-report.jar并将其导入到Android测试项目的libs中
2.打开Android测试项目的AndroidManifest.xml文件,找到
<instrumentation
android:name="android.test.InstrumentationTestRunner"
android:targetPackage="com.xxx.xxx"></instrumentation> |
<instrumentation
android:name="android.test.InstrumentationTestRunner"
android:targetPackage="com.xxx.xxx"></instrumentation>
修改为
<instrumentation
android:name="com.zutubi.android.junitreport.JUnitReportTestRunner"
android:targetPackage="com.xxx.xxx"></instrumentation> |
<instrumentation
android:name="com.zutubi.android.junitreport.JUnitReportTestRunner"
android:targetPackage="com.xxx.xxx"></instrumentation>
3.运行Junit测试
4.使用ADB方式获取单元测试报告
adb pull /data/data/com.xxx.xxx/files/junit-report.xml |
adb pull /data/data/com.xxx.xxx/files/junit-report.xml
Read more…
Android SDK Tools在升级到Version22之后,原来的ant自动编译脚本运行出现错误,导致为Jenkins配置的批处理脚本无法执行,一直发送错误邮件,经过调查后发现,Android SDK Tools升级后文件和目录结构发生了变化,主要包括以下
1.Android SDK Tools 22之后的版本中tools目录中将不包含
- tools\zipalign.exe
- tools\sqlite3.exe
以上两个文件,但是文件对应移动到了各自的platform-tool和build-tools下面,对应路径如下
- build-tools\android-xx\zipalign.exe
- platform-tools\sqlite3.exe
如果需要使用时,需要手动复制到tools下,或者放到PATH变量中去。
Read more…
iOS7.1之后使用OTA方式部署时,强制使用SSL加密方式传送ipa文件和plist文件,但是服务器使用https的话需要支付一定的费用购买SSL证书,国内使用OTA方式发布ipa文件的开发者大部分使用的时http方式,http方式在iOS7.1就失效了。如果对发布的环境要求不高,使用Dropbox作为存储空间方式发布是不错的选择,并且Dropbox是支持https的,而且是浏览器地址栏显示为绿色,最安全的EVSSL。
Read more…
iOS升级到7.1之后,之前一直使用正常的OTA部署的网站在安装APP时报出了以下错误
Cannot install applications because the certificate for www.example.com is not valid
而在7.0和之前的版本上没有这类问题,经过调查得知iOS7.1以后强制使用https安全连接方式才能正常部署,OTA部署用plist文件和ipa文件的URI必须以https方式开头,而7.1之前使用http即可,影响范围包括企业内部署使用的Ad-HOC和InHouse方式。
Read more…
iOS SDK支持64bit后,大部分代码可以直接无缝转换并通过编译,但是这些代码在运行时可能会有所差异,所以开发时需要特别注意,Cocoa-Charts在开发过程中就发现了这类问题。
问题现象:
CoreGraph绘图方法与NSString的drawInRect方法在64Bit下存在着冲突,64Bit下调用drawInRect之后会导致CGContext中的path被清空从而使CGContextStrokePath不进行任何绘图操作,而32Bit下没有任何问题。
Read more…
为了使Cocoa-Charts支持客户端数据计算,需要为Cocoa-Charts增加技术分析数据计算功能,目前比较通用的是TA-lib,但是TA-lib没有提供iOS版本的静态库文件,因此需要在X86平台上交叉编译适用于iPhone模拟器和iPhone真机的TA-lib静态库,用于调试和开发iOS应用程序,使TA-lib支持ARMv7 ARMv7s i386等系统架构的多种iPhone机型或模拟器。
Read more…
Xcode5已经完全抛弃了GCC并切换到LLVM,但并不是完全去除GCC,只是对GCC等编译相关执行文件的位置进行了调整,
如果之前使用的是使用Makefile方式命令行编译iOS APP的话,Xcode4.6下编写的脚本可能会无效,需要对GCC的执行文件路径进行调整。
调整内容如下
Xcode4.6之前:
/Applications/Xcode.app/Contents/Developer/Platforms/${PLATFORM}.platform/Developer/usr/bin
Xcode5.0:
/Applications/Xcode.app/Contents/Developer/usr/bin
Read more…
Recent Comments