ランタイムのダウンロードを回避してオフラインにするために、robolectric に依存するすべての jar ファイルをダウンロードするにはどうすればよいですか? 2.xx バージョンの一部である Robolectric.buildActivity() を使用する必要があります。
これについて何か考えはありますか?
ランタイムのダウンロードを回避してオフラインにするために、robolectric に依存するすべての jar ファイルをダウンロードするにはどうすればよいですか? 2.xx バージョンの一部である Robolectric.buildActivity() を使用する必要があります。
これについて何か考えはありますか?
Robolectric 2.4 から、依存関係のローカル コピーを使用するように Robolectric テスト ランナーに指示できるように、2 つのシステム プロパティが追加されました。Robolectricの設定ページを参照してください。
設定は次のとおりです。
dependencyDir にコピーする必要があるファイルを特定する 1 つの方法は、実行gradlew testDebug -i
(または場合によっては を使用-d
) して出力を監視し、実行時にどの jar がダウンロードされているかを確認することです。次に、それらをビルド マシンの既知の場所にコピーします。(必要なファイルを確認する別の方法は、SdkConfig.java を調べて、そこに記載されている依存関係の jar とその依存関係を取得することです。)
現在の Robolectric 3.0-rc2 の場合、必要なファイルは次のとおりです。
これらのファイルをたとえば などの既知の場所にコピーし、次のよう/home/jenkins/robolectric-files/
に編集build.gradle
します。
afterEvaluate {
project.tasks.withType(Test) {
systemProperties.put('robolectric.offline', 'true')
systemProperties.put('robolectric.dependency.dir', '/home/jenkins/robolectric-files/')
}
}
これが私がそれを解決した方法ですorg.robolectric:robolectric:3.0
https://gist.github.com/kotucz/60ae91767dc71ab7b444
ランタイムの依存関係をビルド フォルダーにダウンロードし、それを使用するようにテストを構成します。システム プロパティの設定を参照してください。
私もこの問題を抱えていました.org.robolectric.Testrunnerがorg.robolectric.MavenCentralオブジェクトを作成していることが原因であることがわかりました. オフライン ビルドはその URL にアクセスできません。
私の場合、Maven リポジトリ プロキシを使用する必要があるため、http://oss.sonatype.orgを指す URL をローカルの Maven リポジトリ プロキシに置き換えました。つまり、RobolectricTestRunner を org.robolectric.MyRobolectricTestRunner にサブクラス化し、それが使用するカスタム MavenCentral オブジェクトを作成し、RobolectricTestRunner がそのプライベート MAVEN_CENTRAL オブジェクトを参照するメソッドをオーバーライドしました。
RobolectricTestRunnerとMavenCentralのソース コードは、Robolectric の Github ページで入手できます。