好久没更新博客了,因此把最近遇到的问题记录下来,主要有如下两个坑,以供大家参考!
1. Android studio升级到2.2.0之后,Robolectric配置的单元测试无结果输出
在Android studio更新到2.2.0之后,发现单元测试用例都跑不通,苦思不得其解
更新前的配置:
|
|
更新后的配置
|
|
仅仅是Android studio升级了,其他都没有变化,结果单元测试却跑不过。
首先从兼容性入手,排查是否是因为Android studio 2.2.0与Robolectri、JUnit、Mockito的版本不兼容问题,几经尝试,排除了兼容性问题。最后发现Robolectric每次运行的时候会去读取工程的Manifest文件,默认路径如下:
|
|
在我的工程里面先前是:
|
|
在Android studio升级后,Manifest路径变成了:
|
|
因此单元测试用例都无法通过,因此需要修改Robolectric读取的Manifest默认路径,我通过反射方法修改了其默认路径:
|
|
最后在配置的Config的时候直接指定Manifest的路径即可:
|
|
因此该问题就解决了!
2. gradle利用maven-publish脚本打包library到maven仓库问题
由于项目需要,需要将自己的library打包上传到公司的maven服务器,由于以前用的是maven插件来打包library库,但是发现十分麻烦,而且不太灵活;最后发现有maven-publish插件,于是就通过maven-publish来写了个脚本,实现一键打包上传到仓库,十分方便,而且通用、灵活。
既可以上传到私有maven,又可以上传到公司的maven仓库,debug和release版本可以同时发布。
|
|
|
|
私有的Maven可以自己配置,不在赘述。
在需要发布library的模块中的build.gradle脚本中直接引用该脚本即可:
|
|
执行命令:
|
|
暂定写到这儿,还有几个坑,下次再补上!!!