I setup Espresso instrumentation framework to run my Android Functional Automation tests. For every test, I want to login to the app and delete the app after I finish the test.
So, I setup something like below:
public class FirstSampleTest extends BaseTest {
private final BaseTest baseTest;
// private final ElementUtils elementUtils;
public FirstSampleTest() throws InterruptedException {
this.baseTest = new BaseTest();
}
@Before
public void initiate() throws InterruptedException {
//I have setup login method here to login to the app after it installs
}
@Rule
public ActivityTestRule<SplashScreenActivity> splashScreenActivityActivityTestRule = new ActivityTestRule(SplashScreenActivity.class);
@Test
public void testTheHomeScreen() throws InterruptedException {
//Some tests go here.
}
@After
public void teardown() throws InterruptedException {
//I want to uninstall the app or delete it from the emulator once the test is run
}
}
You can add a gradle task in the Android Studio Before launch
section in Run -> Edit Configurations
.
Click +
-> Add a gradle-aware Make -> :app:uninstallAll
note: "app" in :app:uninstallAll
depends on your main module name. So it can be :my_module:uninstallAll
, or :company:uninstallAll
Uninstalling the app from the Instrumentation tests is not possible. However, once all the tests are run, the app is uninstalled automatically.
Note: The app is not uninstalled only when a single test is run. Please run the whole build using the command ./gradlew connectedAndroidTest
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With