2016-06-29 8 views
1

私はプロジェクトに計測テストを追加しようとしていますが、GradleはAndroid JUnitテストランナーをプロジェクトのクラスパスに正しく追加していないようです。私のGradleのビルドファイルのテストdepenenciesは次のようになります。私たちは、サポートライブラリ(24.0.0)の最新バージョンが、テストランナーの現在のバージョン(JUnitのランナー)とエスプレッソの使用を使用しているAndroid JUnitテストランナーを解決できません

testCompile 'junit:junit:4.12' 
androidTestCompile 'junit:junit:4.12' 

androidTestCompile 'com.android.support.test:runner:0.5' 
androidTestCompile 'com.android.support.test.espresso:espresso-core:2.2.2' 

バージョン23.1.0。

androidTestCompile 'com.android.support:support-v4:24.0.0' 
androidTestCompile 'com.android.support:appcompat-v7:24.0.0' 
androidTestCompile 'com.android.support:support-v13:24.0.0' 
androidTestCompile 'com.android.support:recyclerview-v7:24.0.0' 
androidTestCompile 'com.android.support:design:24.0.0' 
androidTestCompile 'com.android.support:support-annotations:24.0.0' 

と::

configurations.all { 
    resolutionStrategy { 
     force 'com.android.support:support-annotations:24.0.0' 
    } 
} 
バージョンの競合を解決するために、私はランナー(とエスプレッソが)(私は意味を理解し、私たちは、古いバージョンを使用することはできません)新しいバージョンを使用するように強制します

しかし何らかの理由でGradleにrunnerパッケージ(android.support.test)が追加されていません。したがって

import android.support.test.runner.AndroidJUnit4; 

は、エラー:cannot resolve symbol 'runner'をスローします。 Android Studioのキャッシュをクリアし、IDEを再起動し、Gradleのキャッシュ(プロジェクトとグローバルの両方)をクリアしました。誰が何が起こっているのか分かっていますか?追加

+0

古いバージョン(おそらく削除されている)を使用しているため、サポート注釈で後方互換性のない変更(APIの削除など)が発生し、テストランナーが壊れている(libの新しいバージョンでは機能しない) API? – Metallica

+0

問題はバージョンとは関係がないようです。古いバージョン(テストランナーが使用しています)を使用しても、私はまだ同じエラーが発生します。どんな考え? – Metallica

+0

Android Studioを2.2.6から2.2.7にアップデートした後に同じ問題が発生しました。 – Ernest

答えて

1

試してみてください。 androidTestCompile 'com.android.support.test:rules:0.5'

0

これは私の古い質問ですが、それは問題と解決策を説明するのに役立つかもしれないと思いました。問題は、デバッグビルドバリアントの名前とあった:あなたはdebugが、あなたのデバッグビルドバリアントには任意の名前を付ける場合は、あなたのbuild.gradleスクリプトにtestBuildType "yourDebugBuildVariantName"を追加することにより、AndroidのGradleのプラグインを通知するようにしてください(あなたのアプリケーションモジュールのbuild.gradleないプロジェクトグローバル)android{}にデバッグビルドバリアントの名前をdebugに変更してください。 testBuildType armDebug:あなたは複数のデバッグビルドバリアントを持っている場合は、同じように、あなたのテストを実行したいのですがどのそれらのいずれかを指定する必要があり

apply plugin: 'com.android.application' 
... 

android { 

    testBuildType "myDebug" <- 

    compileOptions { ... } 

    sourceSets { ... } 

    signingConfigs { ... } 
} 

でも、この明示的な設定で、Gradleでは、時折の問題を持っているようですインストルメンテーションテストを実行します。これを回避する最良の方法は、これが実現可能なオプションであれば、デバッグビルドバリアント(テストを実行するもの)の名前をdebugに変更することです。

関連する問題