使用Robolectric运行Android测试 - 依赖性错误

时间:2015-04-29 09:43:51

标签: android robolectric

我使用的是Android Studio 1.2和Windows 7

在此example之后运行robolectric测试时:

testCompile 'junit:junit:4.12'
testCompile "org.mockito:mockito-core:1.9.5"
testCompile 'org.apache.maven:maven-ant-tasks:2.1.3'
testCompile "org.robolectric:robolectric:3.0-rc2"

测试结果或更多错误堆栈跟踪:

$(document).ready(function(){
 $("#menu-top li").click(function(){
  $(this).find('a').click();
 });
});

gradle构建依赖项:

14157.72,39140.94,36383.66,38508.00,8424.00

我发现资源,robolectric试图得到,是不可用的。当关注网址时,它会尝试获取它:https://oss.sonatype.org/content/groups/public/org/sonatype/oss/oss-parent/

没有oss 7.为什么robolectrics试图获得不存在的资源?以及如何让它发挥作用?

2 个答案:

答案 0 :(得分:5)

这似乎是一个代理问题。在代理后面,您必须在{userHome} /.m2 / settings.xml

指定maven的代理设置

我的settings.xml现在看起来像:

<settings>
    <proxies>
        <proxy>
            <active>true</active>
            <host>proxy.host</host>
            <port>3128</port>
        </proxy>
    </proxies>
</settings>

下面没有工作!!

<settings>
    <proxies>
        <proxy>
            <id>proxy-https</id>
            <active>true</active>
            <protocol>https</protocol>
            <host>proxy.host</host>
            <port>3128</port>
        </proxy>
        <proxy>
            <id>proxy-http</id>
            <active>true</active>
            <protocol>http</protocol>
            <host>proxy.host</host>
            <port>3128</port>
        </proxy>
    </proxies>
</settings>

答案 1 :(得分:0)

我已经能够通过覆盖Robolectric Maven存储库URL来解决同一问题。

由于某些原因,Sonatype不可用,Maven Central从2020年1月15日开始使用HTTPS。因此,我决定使用Maven Central URL,但要采用安全方案。

编辑Robolectric RoboSettings类使用的系统属性使我可以使用其他URL。

android {
    testOptions {
        unitTests.all {
            systemProperty 'robolectric.dependency.repo.url', 'https://repo1.maven.org/maven2'
        }
    }
}