私たちは内部のNexusリポジトリからの依存関係org.robolectric:robolectric:3.0
を使用しようとしています。問題は、Robolectricが実行時にパブリックリポジトリ(as mentioned here)からいくつかの依存関係をロードしようとし、build.gradle内のリポジトリオーバーライドを無視することです。Robolectricランタイム依存関係リポジトリのURLを上書きする方法は?
私たちは私たちのイントラネットからの公共の場所へのアクセスを持っていないので、私のテストは、その依存関係をロードしようとした後、タイムアウト:
[WARNING]リソース を取得できません「org.robolectric:android- エラーファイル転送:操作は
をタイムアウトしRobolectric configuration documentationの底部分は、あなたのGradle configuratioにこれを追加することをお勧めします リポジトリsonatype(https://oss.sonatype.org/content/groups/public/)から5.0.0_r2-robolectric-1' :すべて:jarファイルn:URLを上書きする:
android {
testOptions {
unitTests.all {
systemProperty 'robolectric.dependency.repo.url', 'https://local-mirror/repo'
systemProperty 'robolectric.dependency.repo.id', 'local'
}
}
}
残念ながら、私はそれをテストしましたが、設定されているシステムプロパティは表示されません。私は自分のカスタムRobolectricランナー(RobolectricGradleTestRunner
を拡張しています)の中からそれを印刷しました。そのシステムプロパティはnullのままです。
System.out.println("robolectric.dependency.repo.url: " + System.getProperty("robolectric.dependency.repo.url"));
は私も
this commentに似た何かをしようとした(が、その方法は
RobolectricGradleTestRunner
に上書きするために存在していない)、と私はまた私のカスタムRobolectricランナーに直接システムプロパティを設定してみました、それはしませんでした助けてくれるようです。
@Config(constants = BuildConfig.class)
public class CustomRobolectricRunner extends RobolectricGradleTestRunner {
private static final String BUILD_OUTPUT = "build/intermediates";
public CustomRobolectricRunner(Class<?> testClass) throws InitializationError {
super(testClass);
System.setProperty("robolectric.dependency.repo.url", "https://nexus.myinternaldomain.com/content");
System.setProperty("robolectric.dependency.repo.id", "internal");
System.out.println("robolectric.dependency.repo.url: " + System.getProperty("robolectric.dependency.repo.url"));
}
Robolectric source codeは、これらのシステムプロパティが存在することを確認しているようです。
私は、リポジトリへの資格情報の追加に関するこのフォローアップの質問があります。https://stackoverflow.com/questions/47232275/how-to-add-credentials-to-the-dependencyresolver-used-by-robolectric – yiati