Android UIテストフレームワークの一部のインポートに問題があります-何が間違っているのかわかりません!
これは私のクラスです:
@RunWith(AndroidJUnit4.class)
@LargeTest
public class ExampleUnitTest {
@Rule
public ActivityTestRule<MainActivity> mActivityRule = new ActivityTestRule(MainActivity.class);
@Test
public void listGoesOverTheFold() {
onView(withText("Hello world!")).check(matches(isDisplayed()));
}
}
しかし、何らかの理由で「シンボルActivityTestRuleが見つかりません」および「AndroidJUnit4シンボルが見つかりません」というエラーが表示されます。それらをインポートしようとしましたが、見つかりません。
Build.gradleの依存関係は次のように設定されます。
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.Android.support:appcompat-v7:23.4.0'
androidTestCompile 'com.Android.support:support-annotations:23.4.0'
androidTestCompile 'com.Android.support.test:runner:0.4'
androidTestCompile 'com.Android.support.test:rules:0.4'
androidTestCompile 'com.Android.support.test.espresso:espresso-core:2.2.1'
androidTestCompile 'com.Android.support.test.uiautomator:uiautomator-v18:2.1.2'
だから私はすべての依存関係のセットアップを持っていると思う-私は多くのことを試してみましたが、運はありませんでした。
誰にもアイデアはありますか?
Androidで設定できるテストには2種類あります
単体テスト
test/Java
パッケージに保持されますtestCompile
を使用してbuild.gradleファイルに依存関係を追加する必要があります計測テスト
androidTest/Java
パッケージに保持されますandroidTestCompile
でbuild.gradleに追加する必要がありますEspressoを使用してインストルメンテーションテストを記述しようとしているが、ユニットテスト用のtest/Java
パッケージにテストがあることを伝えることができます。その場合、テストクラスをandroidTest/Java
パッケージに移動する必要があります。
これらを新しいバージョンに追加します。
androidTestImplementation 'com.Android.support.test:rules:1.0.2'
androidTestImplementation 'com.Android.support.test:runner:1.0.2'
追加:
androidTestImplementation 'com.Android.support.test:rules:1.0.2'
問題を解決しますが、プロジェクトをgradleファイルと同期することを忘れないでください。その後、変更が有効になります。
依存関係を追加する必要があります
testCompile 'com.Android.support.test:rules:0.5'
testCompile 'com.Android.support.test:runner:0.5'
AndroidXに移行した場合、これを使用します。
androidTestImplementation 'androidx.test:rules:1.1.1'
androidTestImplementation 'androidx.test:runner:1.1.1'
依存関係を追加します。
androidTestCompile 'com.Android.support.test:rules:0.5'
androidTestCompile 'com.Android.support.test:runner:0.5'