1

ランタイムのダウンロードを回避してオフラインにするために、robolectric に依存するすべての jar ファイルをダウンロードするにはどうすればよいですか? 2.xx バージョンの一部である Robolectric.buildActivity() を使用する必要があります。

これについて何か考えはありますか?

4

4 に答える 4

2

Robolectric 2.4 から、依存関係のローカル コピーを使用するように Robolectric テスト ランナーに指示できるように、2 つのシステム プロパティが追加されました。Robolectricの設定ページを参照してください。

設定は次のとおりです。

  • robolectric.offline - true に設定して、jar のランタイム フェッチを無効にします。
  • robolectric.dependency.dir - オフライン モードの場合、ランタイムの依存関係を含むフォルダーを指定します。

dependencyDir にコピーする必要があるファイルを特定する 1 つの方法は、実行gradlew testDebug -i(または場合によっては を使用-d) して出力を監視し、実行時にどの jar がダウンロードされているかを確認することです。次に、それらをビルド マシンの既知の場所にコピーします。(必要なファイルを確認する別の方法は、SdkConfig.java を調べて、そこに記載されている依存関係の jar とその依存関係を取得することです。)

現在の Robolectric 3.0-rc2 の場合、必要なファイルは次のとおりです。

  • アクセシビリティ テスト フレームワーク 1.0.jar
  • android-all-5.0.0_r2-robolectric-1.jar
  • icu4j-53.1.jar
  • json-20080701.jar
  • robolectric-annotations-3.0-rc2.jar
  • robolectric-resources-3.0-rc2.jar
  • robolectric-utils-3.0-rc2.jar
  • shadows-core-3.0-rc2.jar
  • sqlite4java-0.282.jar
  • tagsoup-1.2.jar
  • vtd-xml-2.11.jar

これらのファイルをたとえば などの既知の場所にコピーし、次のよう/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/')
    }
}
于 2015-05-14T02:19:53.800 に答える
2

これが私がそれを解決した方法ですorg.robolectric:robolectric:3.0

https://gist.github.com/kotucz/60ae91767dc71ab7b444

ランタイムの依存関係をビルド フォルダーにダウンロードし、それを使用するようにテストを構成します。システム プロパティの設定を参照してください。

于 2015-10-06T14:34:29.473 に答える
1

私もこの問題を抱えていました.org.robolectric.Testrunnerがorg.robolectric.MavenCentralオブジェクトを作成していることが原因であることがわかりました. オフライン ビルドはその URL にアクセスできません。

私の場合、Maven リポジトリ プロキシを使用する必要があるため、http://oss.sonatype.orgを指す URL をローカルの Maven リポジトリ プロキシに置き換えました。つまり、RobolectricTestRunner を org.robolectric.MyRobolectricTestRunner にサブクラス化し、それが使用するカスタム MavenCentral オブジェクトを作成し、RobolectricTestRunner がそのプライベート MAVEN_CENTRAL オブジェクトを参照するメソッドをオーバーライドしました。

RobolectricTestRunnerMavenCentralのソース コードは、Robolectric の Github ページで入手できます。

于 2014-05-27T09:26:30.180 に答える