Skip to main content
Transform your testing process with: Real Device Features, Company-wide Licences, & App Percy
No Result Found

Run your Flutter integration tests for Android

Integration tests are used to test how individual code works together and to capture the overall performance of an app. The integration test package, provided by Flutter is used to write integration tests for your Flutter app.

Follow these steps to run your Flutter integration tests for Android:

Setup BrowserStack account

You need a BrowserStack username and access key. To obtain your access credentials, sign up for a free trial or purchase a plan.

Prepare Android Flutter app and test suite for testing

You need to build a Flutter app and test suite for testing. You can create Flutter applications and test suites using either Flutter cli or gradlew. The steps below show how to create apks using gradlew.

Create an instrumentation test file in your application’s android/app/src/androidTest/java/com/example/myapp/ directory. Replace com, example, and myapp with the values from your app’s package name.

Then, name this test file as MainActivityTest.java or another name of your choice.

MainActivityTest.java
Copy icon Copy

Update your application’s myapp/android/app/build.gradle file to ensure it uses androidx’s version of AndroidJUnitRunner and includes androidx libraries as a dependency.

build.gradle
Copy icon Copy

Use the following Gradle commands to build an instrumentation test.apk file(test suite) using the MainActivityTest.java created in the androidTest directory as mentioned in step 1.

Terminal
Copy icon Copy

Avoiding this step might result in No Tests Ran issue on the dashboard.

If you want to create your APKs by incorporating optional Flutter parameters, start by executing the Flutter tests using the flutter cli in verbose mode. This allows you to view the Gradle command that is utilized internally for building the APKs.

For example, if you want to use --no-sound-null-safety in your tests, run the following command:

Terminal
Copy icon Copy

There may be cases where you need to pass custom arguments to Flutter tests when running them with Gradle. Encode the custom argument in base 64 without dashes and pass it in the Gradle command. For example, if your argument is --env = nonprod, convert it to base 64. In this case, it becomes ZW52ID0gbm9ucHJvZA==. Pass this before -Ptarget in your Gradle command using the following syntax:

-Pdart-defines="ZW52ID0gbm9ucHJvZA=="

Next, check for gradlew execution in the logs. For the above command, we get a gradlew command in the logs something similar to the following. Use the command to build your apk files:

Terminal
Copy icon Copy

Upload your app

Upload your Android app (.apk or .aab file) to BrowserStack servers using the REST API request.

The following sample cURL command shows how to upload an app:

Terminal
Copy icon Copy

A sample response for the request is as follows:


{
    "app_name":"Application-debug.apk",
    "app_url":"bs://j3c874f21852ea50957a3fdc33f47514288c4ba4",
    "app_version":"1.0",
    "app_id":"j3c874f21852ea50957a3fdc33f47514288c4ba4",
    "uploaded_at":"2022-05-12 07:27:54 UTC",
    "expiry":"2022-06-11 07:27:54 UTC"
}

The value of the app_url parameter in the response is used to specify the application under test when you run Flutter integration tests.

App upload takes a few seconds to about a minute, depending on the size of your app. Do not interrupt the curl command until you get the response.

Upload your test suite

Upload your test suite (.apk) file, created in the previous step, to BrowserStack servers using our REST API request.

The following sample cURL command shows how to upload a test suite:

Terminal
Copy icon Copy

A sample response for the request is as follows:

{
    "test_suite_name":"Application-debug-test.apk",
    "test_suite_url":"bs://f7c874f21852ba57957a3fde31f47514288c4ba4",
    "test_suite_id":"f7c874f21852ba57957a3fde31f47514288c4ba4",
    "uploaded_at":"2022-05-12 07:32:41 UTC",
    "expiry":"2022-06-11 07:32:41 UTC",
    "framework":"flutter-integration-tests"
}

The value of the test_suite_url parameter in the response is used to specify the test suite when you run Flutter Integration tests.

Run Android Flutter integration tests

After you upload your app and test suite to BrowserStack servers, send an API request to start the test execution as shown in the following sample cURL request:

Select device
This device is not available in the free plan. Please upgrade to paid plan.
 

A sample response for the request is as follows:

{
    "message" : "Success",
    "build_id" : "4d2b4deb810af077d5aed98f479bfdd2e64f36c3"
}

The build_id is used to uniquely identify your build in App Automate.

View test results

After you start Flutter integration tests execution using the REST API, visit the App Automate dashboard to view your test results, debugging logs, and overall test details.

We're sorry to hear that. Please share your feedback so we can do better

Contact our Support team for immediate help while we work on improving our docs.

We're continuously improving our docs. We'd love to know what you liked





Thank you for your valuable feedback

Is this page helping you?

Yes
No

We're sorry to hear that. Please share your feedback so we can do better

Contact our Support team for immediate help while we work on improving our docs.

We're continuously improving our docs. We'd love to know what you liked





Thank you for your valuable feedback!

Talk to an Expert
Download Copy Check Circle