Android 在代理后面的IDEA中运行Robolectric
我有一个公司环境,所有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)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
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