原文地址:http://www.pluto-y.com/ios-unit-test-jenkins-xctool/
我胡汉三又回来啦,继上次说完Jenkins和XCode的整合后,劳资又想把单元测试交给Jenkins了,于是乎又开始寻寻觅觅寻,好聪明的中国人,好优美的中国话,扁担宽 板凳长
扁担想绑在板凳上…..不好意思,忘记次药了,不知道为什么突然脑袋里面被人插入这段旋律了。
好了言归正传,关于这篇文章是建立在Jenkins集成好Xcode的基础上,因为如果没有集成的话,可能会有一些差别。如果不知道如何整合Xcode的话,可以看Jenkins整合XCode详解这篇文章,里面有惊喜哟。
关于xctool不了解的童鞋可以到xctool在Github上查看具体的文档,本文就不对其基础用法进行累述了。如果没有用上xctool的同学那就真的可惜了,那我们就真的没办法愉快的么么哒了,毕竟连工具都用的不一样还怎么谈恋爱。
好吧,先上两张效果图:
测试报告的结果趋势
每次构建后的报告(红线框部分)
好了,看完了效果图,接下来就开始说怎么做了,其实很简单的两步走
- 在Xcode构建后加一条Execute Shell的构建,在其中加入语句/usr/local/bin/xctool -workspace
***.xcworkspace
-schemeschemeName
-sdk iphonesimulator -reporterjunit:report/****-report.xml
run-tests
,如图
聪明的童鞋一看就知道这个和xcodebuild命令的参数类似
***.xcworkspace:即你的workspace的名称(如果是xcodeproj文件,则改成-project projectName.xcodeproj)
schemeName:即你项目中的scheme(如果不懂填写,查整合xcode的文章)
junit:report/****-report.xml:即以junit的报告格式进行输入,并存到report目录下名字为****-report.xml的文件,目录名和文件名都可以进行修改
run-tests:即只执行测试不执行clean和编译的过程(如果您在Jenkins中所见的job为只用来单元测试的话,可以将'run-tests'改为'clean build test',这样就会为这个job进行clean、编译和测试)
- 接着在构建后添加一个Publish JUnit test result report的项目,并且填写之前写好的目录名好文件名,如图
- 最后构建项目——-大功告成!