美文网首页Android知识Android进阶之路Android技术知识
解决使用Robolectric时依赖库下载慢的问题

解决使用Robolectric时依赖库下载慢的问题

作者: ZYRzyr | 来源:发表于2017-03-23 13:14 被阅读706次

    文/ZYRzyr
    原文链接:http://www.jianshu.com/p/06e6b5633054

    前言

    在Android Studio中,通常在第一次使用Robolectric时,需要下载一些依赖库,log中可以看到类似如下信息:

    Downloading: org/robolectric/android-all/4.1.2_r1-robolectric-0/android-all-4.1.2_r1-robolectric-0.jarfromrepository sonatypeathttps://oss.sonatype.org/content/groups/public/Transferring30702Kfromsonatype

    意思就是要先下一些库做准备,但是其下载速度简直得令人发指!究其原因不外乎就是oss.sonatype.org的服务器在其它国家,所以马上能联想到修改仓库的地址应该就能解决问题。
    经过本人多次尝试,最后从Robolectric的源码中找到最简单的解决方案,其余方法就不再赘述,直接上干货!

    解决方案——把oss.sonatype.org改成阿里云的仓库

    1.先把电脑上的.m2\repository\org\robolectric\中未下载完的东西删完,因为里面可能有pom配置文件,里面的配置指向的oss.sonatype.org,不删的话可能还是会从它那儿下。我的路径如下:

    C:\Users\zyr\ .m2\repository\org\robolectric

    2.删掉之前没下完的文件后,自定义TestRunner:

    public class CustomRobolectricTestRunner extends RobolectricTestRunner {
        public CustomRobolectricTestRunner(Class<?> testClass) throws InitializationError {
            super(testClass);
            RoboSettings.setMavenRepositoryId("alimaven");
            RoboSettings.setMavenRepositoryUrl("http://maven.aliyun.com/nexus/content/groups/public/");
        }
    }
    

    3.自定义完成后,直接使用自定义的TestRunner:

    @Config(manifest = Config.NONE)
    @RunWith(CustomRobolectricTestRunner.class)
    public class MyTest {
    
        @Test
        public void test() {
            System.out.println("test");
        }
    }
    

    4.写好测试用例后,直接运行,速度快到飞起!!

    小结

    阅读源码往往能解决很多问题,虽然这个过程会花费大量的时间,但通常都是值得的。

    原创作者/ZYRzyr
    原文链接:http://www.jianshu.com/p/06e6b5633054

    请进入这里获取授权:https://101709080007647.bqy.mobi

    相关文章

      网友评论

        本文标题:解决使用Robolectric时依赖库下载慢的问题

        本文链接:https://www.haomeiwen.com/subject/vrmznttx.html