Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Cannot resolve ActivityTestRule after upgrading dependencies. Unable to import ActivityTestRule

I have written instrumentation tests which was working fine, but now getting error cannot resolve ActivityTestRule error after upgrading dependencies to

androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'

I am using android support version 27.1.1

It is working fine with dependencies

androidTestImplementation 'com.android.support.test:runner:1.0.1'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
like image 985
Navjacinth Mathew Avatar asked Apr 27 '18 12:04

Navjacinth Mathew


2 Answers

In the most recent update of the Testing Support Library (2018-04-24), the "rules" dependency was apparently removed from the espresso-core. I'm not sure why this was done, but the release notes say this about the change:

Fixed espresso-core POM file to not pull in "rules" dependency, instead have espresso-intents POM pull it. This should be a NoOp change for developers since espresso-intents cannot be used without espresso-core.

You can fix this problem by adding the following dependency to app/build.gradle:

androidTestImplementation 'com.android.support.test:rules:1.0.2'
like image 132
Rapunzel Van Winkle Avatar answered Oct 12 '22 06:10

Rapunzel Van Winkle


AndroidX Test includes another API,ActivityScenario that is currently in beta. This API works in a variety of testing environments and provides thread safety within the tests that use it. Consider using ActivityScenarioRule or ActivityScenario instead.

import androidx.test.ext.junit.rules.ActivityScenarioRule

ActivityScenarioRule(YourActivity::class.java)
like image 1
Bacar Pereira Avatar answered Oct 12 '22 04:10

Bacar Pereira