uninstall app before start test

2019-03-21 22:17发布

We're trying to write instrumentationTest for our app.

For example I want to write test for authorization/registration.

However before every test I want to be unauthorized? so I need to clean all data, delete db, etc.

So is there any way to delete app or app's data before every test?

3条回答
可以哭但决不认输i
2楼-- · 2019-03-21 22:52

This question was asked in '13. We have come a long way since then. Android has jUnit test runner that comes with a cleanup mechanism under test orchestrator.

Check it out here https://developer.android.com/training/testing/junit-runner

查看更多
闹够了就滚
3楼-- · 2019-03-21 22:54

Use Annotations eg:

@BeforeEach

and put your clean up code there.

查看更多
欢心
4楼-- · 2019-03-21 23:11

Using Android studio, you can create a test configuration that first uninstalls your app before running a test.

Create a new External Tool.

  1. Go to Preferences -> External Tools.
  2. Click on the "+" icon to create a new tool.
  3. Set Name to "Uninstall myApp" (or whatever you like)
  4. Set Group to "Custom Tools" (or whatever you like)
  5. Set Program to "adb"
  6. Set Parameters to uninstall
  7. Click OK.

You can test that this new tool works by clicking Tools->Custom Tools->"Uninstall myApp".

Step 2. Create or edit your test configuration.

  1. Go to Edit Configurations.
  2. Choose the Android Tests configuration that you'd like to modify.
  3. Under "Before launch: ...", click the "+" icon.
  4. Choose "Run External Tool".
  5. In the popup, choose your new tool "Uninstall myApp".
  6. Use the arrows so that the External Tool is above any other commands like Gradle-aware Make".
  7. Click Ok.

Now, when you run this configuration, your app should be uninstalled first, before your tests are run.

查看更多
登录 后发表回答