2017-02-22 11 views
0

Android Studion 2.2.3Android。 @RunWith(AndroidJUnit4.class) - パッケージ "androidTest"で解決できない

インストールAndroidサポートリポジトリ - ver。すべてのエスプレッソの公式サイトのよう44.0.0

Iセットアップ:

https://google.github.io/android-testing-support-library/docs/espresso/setup/index.html

は、私はパッケージandroidTestで計測テスト(エスプレッソ)を記述してみてください。私のbuild.gradleで

@RunWith(AndroidJUnit4.class) 
@LargeTest 
public class StringUtilAndroidTest { 

    @Rule 
    public ActivityTestRule<MainActivity> mActivityRule = new ActivityTestRule(MainActivity.class); 

    @Test 
    public void myTest() { 
     assert(true); 
    } 
} 

android.defaultconfig { 
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" 
} 

だから私は、フォルダのsrc/androidTest/javaの/ COM/mycompanyの/

マイStringUtilAndroidTestコードでStringUtilAndroidTestを作成します私の依存関係:

testCompile 'junit:junit:4.12' 
testCompile 'org.hamcrest:hamcrest-library:1.3' 
androidTestCompile 'com.android.support.test.espresso:espresso-core:2.2.2' 
androidTestCompile 'com.android.support.test:testing-support-lib:0.1 

しかしStringUtilAndroidTest に私はコンパイルエラーを取得:

@RunWith(AndroidJUnit4.class) 

は、シンボルRunWith

なぜ解決できませんか?

+0

androidTestCompile行をbuild.gradleに追加する以外に、クラスをJavaファイルの上にインポートすることも忘れませんか?すなわち、 'import org.junit.runner.RunWith;' – Bill

+0

import org.junit.runner.RunWith; - 'RunWith'シンボルを解決できません – Alexei

答えて

2

短い答え:これをあなたの依存関係に加えて、あなたは金色です。

androidTestCompile 'junit:junit:4.12' 
androidTestCompile 'org.hamcrest:hamcrest-library:1.3' 

長い答え:test & androidTest:デフォルトの設定で

、アンドロイドStudioプロジェクトには、二つの異なるテストの "バリアント" を持っています。前者は 'src/test/java'を使用し、後者の 'src/androidTest/java'(これはシナリオです)を使用します。

2つの大きな違いがあります。androidTestには、エミュレータまたは実行するデバイスが必要です。testはありません。つまり、testははるかに速く(通常はIDEで数秒)、Androidフレームワーク(アクティビティ、コンテキスト&など)にアクセスすることはできません。一方、androidTestは実行に時間がかかります(エミュレータ自体の待ち時間はもちろんありません)が、Androidフレームワークを持っています(1つで実行されているため)。

2つの別個のバリアントなので、依存関係も別々に宣言する必要があります。 testCompileおよびandroidTestCompileは、それぞれ独自のバリアントにのみ依存性を追加します。両方でJUnitを使用するには、本質的に "繰り返す"という両方に依存することを宣言する必要があります。

P.: .: compileを使用すると、それがすべてのバリアントに追加されるため、テスト以外の依存関係を繰り返す必要はありません。

0

あなたはおそらくいくつかの依存関係を見逃しています。

//App's dependencies, including test 
compile 'com.android.support:support-annotations:22.2.0' 

// Testing-only dependencies 
androidTestCompile 'com.android.support.test:runner:0.5' 
androidTestCompile 'com.android.support.test.espresso:espresso-core:2.2.2' 
androidTestCompile 'junit:junit:4.12' 

testCompile 'junit:junit:4.12' 

希望するコードを修正します。

+0

助けになりません。私は同じエラーを受け取ります – Alexei

+0

私はちょうどそれをテストしました。彼らは私の場合に働きました。 –

関連する問題