转载请注明:http://blog.csdn.net/liaoqianchuan00/article/details/23009137
以下文章以windows服务器为例
visualSvn
http://www.visualsvn.com/server/download/
ant
http://ant.apache.org/
Jenkins
http://jenkins-ci.org/
Android sdk
http://developer.android.com/sdk/index.html#download
1. 解压ant到C盘根目录
2. 解压Android sdk
3. 解压jenkins,安装到指定目录,打开浏览器,访问http://localhost:8080/,可以看到jenkins已经安装好了。
4. 安装visualSVN,创建仓库,并把需要的代码提交到SVN. https://localhost/svn/calculator/trunk/
例如:
android update project --name calculator--target 1 --path ./
这样就在我的calculator工程下面建立了一个build.xml的文件。
1. Jenkins-系统管理-系统设置-jdk
别名任意,JAVA_HOME填上JDK的位置,例如:C:\ProgramFiles\Java\jdk1.7.0_17
2. Jenkins-系统管理-系统设置-ant
名字任意,ANT_HOME: C: \develope\apache-ant-1.9.3
3. Jenkins-新建-job名字-构建一个自由分割的软件项目。
4. 项目名称,例如:Calculator
5. 源码管理,我用的svn,所以选择了Subversion.
6. Repositoru URL,填上你的SNV地址,例如:https://localhost/svn/calcaulator/trunk
7. 构建触发器:* * * * *,表示随时svn有变动都会触发。
8. 构建,因为我们用ant来build,所以选择Invoke Ant。
Ant version选择刚才在系统管理中配置的名字,
Targets填入debug(这个就是ant的任务),
buildfile:./build.xml.
Properties:在linux系统中不需要用到双反斜杠。
sdk.dir=C:\\develope\\adt-bundle-windows-x86_64-20140321\\sdk
target=android-19
在测试工程下生产ant文件
android update test-project -m../calculator/ -p ./
1. 列出android的版本信息
androidlist target
2. 创建模拟器
android create avd -n 4.4avd -t 2
-n后面接需要创建avd的名字,-t后面接需要创建虚拟器的类型,2即为步骤(1)中得到的类型id号。
3. 查看已经创建的avd
androidlist avd
3. 启动模拟器
emulator -avdmagicyu
1. 复制刚才创建好的job
2. 修改svn地址为测试工程的地址
3. 修改构建-Invokeant-target为test。
1. 编写自己的testrunner,将结果存到测试工程私有目录
2. 在ant构建target中填入 debuginstall test
3. 在ant构建的属性中添加
test.runner=com.calculator.test.InstrumentationTestRunner
4. 在Jenkins中添加构建,这次我们添加windows控制台构建
set PKG=com.calculator
set OUTDIR=/data/data/%PKG%/files/
set OUTFILE=test-results.xml
set ADB=C:\\develope\\adt-bundle-windows-x86_64-20140321\\sdk\\platform-tools\\adb
%ADB% install -r"../Calculator\bin\calculator-debug.apk"
%ADB% shell am instrument -w -e outfile"%OUTFILE%" %PKG%.test/%PKG%.test.XMLInstrumentationTestRunner
%ADB% pull"%OUTDIR%/%OUTFILE%" "./%OUTFILE%"
5. 添加构建后操作
Publish Junit testresult resport,在其中填上测试报告的路径。例如:test-results.xml
6. 点击test result进去可看见:
7. 在job主页面也可看见测试结果趋势
问题:
1. 因为我用到了Mocktio,所以在jenkinsbuild的时候,报错:
java.lang.IllegalArgumentException: dexcache == null (and no defaultcould be found; consider setting the 'dexmaker.dexcache' system property)
解决方法:
在test casesetup方法中加入
System.setProperty( "dexmaker.dexcache",getInstrumentation().getTargetContext().getCacheDir().getPath() );