Android 在代理后面的IDEA中运行Robolectric

Android 在代理后面的IDEA中运行Robolectric,android,macos,proxy,intellij-idea,robolectric,Android,Macos,Proxy,Intellij Idea,Robolectric,我有一个公司环境,所有http和https调用都在代理后面 通过将exportinghttp\u proxy环境变量放入.profile文件,我能够解决命令行下载的一些问题 但由于Robolectric2.2在第一次运行之前正在下载android源代码或类,我失败了。我还没有CI设置,所以我只是尝试从idea运行测试 有人知道怎么修吗 我尝试在IDEA设置中提供代理,我尝试在运行配置中提供额外的环境变量。无济于事 UPD当我在Mac设置中指定代理时,它会产生另一个错误: 在存储库sonatype

我有一个公司环境,所有http和https调用都在代理后面

通过将exportinghttp\u proxy环境变量放入.profile文件,我能够解决命令行下载的一些问题

但由于Robolectric2.2在第一次运行之前正在下载android源代码或类,我失败了。我还没有CI设置,所以我只是尝试从idea运行测试

有人知道怎么修吗

我尝试在IDEA设置中提供代理,我尝试在运行配置中提供额外的环境变量。无济于事

UPD当我在Mac设置中指定代理时,它会产生另一个错误: 在存储库sonatype()中找不到资源“org.sonatype.oss:oss父项:pom:7”

看起来我可能使用或缺少了Robolectirc的错误传递依赖项(我没有使用maven或ivy,我只是从maven central下载了JAR)


UPD2不,只是又超时了:传输文件时出错:操作超时

我知道这是一个有点老的问题,但是如果你想使用代理,你应该将以下文件放在你的home/.m2目录中:

settings.xml

<settings>
    <proxies>
        <proxy>
            <active>true</active>
            <protocol>http</protocol>
            <host>your_host_here</host>
            <port>your_port_here</port>
        </proxy>
    </proxies>
</settings>


以防这对某人有所帮助。在settings.xml中设置代理(我尝试了此文件的两种可能路径)对我无效。最后我把它作为一个gradle论点传递:
gradle cleanTest test-Dhttps.proxyHost=-Dhttps.proxyPort=

为一个老问题添加另一个最新答案:)自Robolectric 2.4以来,引入了两个属性来帮助您在代理服务器后面运行CI中的Robolectric测试:

您必须在build.gradle文件中指定
roblectric.offline
roblectric.dependency.dir
。大概是这样的:

afterEvaluate {
    project.tasks.withType(Test) {
        systemProperties.put('robolectric.offline', 'true')
        systemProperties.put('robolectric.dependency.dir', "${project.rootDir}/.robolectric/")
    }
}
然后,您需要从maven或sonatype下载必要的JAR,并将其放在您指定的目录中


我写了一篇更详细的文章。

嘿,谢谢你的回答。我会测试并让你们知道,自从换了工作后,我们无法做到:)这不起作用,因为我的答案是关于使用raw jar或maven的robolectric。我已经更新了我的答案很酷!谢谢分享。这是一个有趣的解决方案,但我更喜欢settings.xml