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

文/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时依赖库下载慢的问题)