Use regular java test instead of connected tests #2213
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
Use regular android unit tests instead of connected tests. This avoids having to build the full app and run an emulator. We can also use the bitrise built in task for android unit tests which gives nice reporting like we have for iOS.
The reason connected tests had to be used is because of ReadableNativeMap, which uses jni, which requires using connected tests.
I used the same technique as the react native unit tests, where they mock the Arguments class to return Java only versions of these classes. This required replacing all places where we created NativeMaps directly with
Arguments.createMap.This cuts down time to run android tests from ~6 minutes to ~3.5 minutes. Not the main motivation for this, but nice added bonus, especially as we add more tests and it could become longer to run.
Motivation
Improve unit test infra.
Testing
Documentation
Select one: