with one click
firebase-cpp-test-runner
// Workflows for locally building and running test apps for the Firebase C++ SDK across Android, iOS, and Desktop. Use when validating new features or bug fixes.
// Workflows for locally building and running test apps for the Firebase C++ SDK across Android, iOS, and Desktop. Use when validating new features or bug fixes.
Instructions and workflows for building the Firebase C++ SDK natively. Use this skill when you need to compile the C++ SDK per-product (e.g., auth, database) across different platforms (Desktop, iOS, Android).
Formatting workflow for C++ and Objective-C code in the Firebase C++ SDK. Use when modifying source code and ensuring compliance with the repository's clang-format rules.
| name | firebase-cpp-test-runner |
| description | Workflows for locally building and running test apps for the Firebase C++ SDK across Android, iOS, and Desktop. Use when validating new features or bug fixes. |
This skill outlines the workflows and convenience scripts required to locally build and run tests for the Firebase C++ SDK across Android, iOS, and Desktop platforms.
Before building integration tests, ensure that your Python environment is set up with all required dependencies, and that you have the private Google Services configuration files present:
pip install -r scripts/gha/python_requirements.txt to install the required libraries (such as attrs, absl-py, etc.).google-services.json must be present in <product>/integration_test/.GoogleService-Info.plist must be present in <product>/integration_test/.build_testapps.py Helper ScriptThe easiest and standard way to build integration tests locally across platforms
is to use the build_testapps.py script.
To build an Android integration test application for specific products (e.g.,
auth and database), run the following command from the repository root:
python3 scripts/gha/build_testapps.py --p Android --t auth,database -output_directory ./android_testapp
This builds an Android app at
build/outputs/apk/debug/integration_test-debug.apk within the product's
module, which you can run on an Android emulator or physical device. Use
./gradlew clean to clean up the build artifacts.
To build iOS testapps for a specific product (e.g., auth):
python3 scripts/gha/build_testapps.py --t auth --p iOS
Note: You must have a Mac environment with Xcode and Cocoapods to build iOS tests successfully.
To build a desktop integration test application for a specific product (e.g., auth), run the following command from the repository root:
python3 scripts/gha/build_testapps.py --p Desktop --t auth
You can specify the architecture with the --arch flag (e.g., --arch x64, --arch x86, or --arch arm64).
If you need more control, you can build tests manually from within the
integration_test/ (or integration_test_internal/) directories.
cd <product>/integration_test
cp path_to_google_services_files/google-services.json .
export FIREBASE_CPP_SDK_DIR=path_to_cpp_git_repo
./gradlew build
cd <product>/integration_test
cp path_to_google_services_files/google-services.json .
mkdir desktop_build && cd desktop_build
cmake .. -DFIREBASE_CPP_SDK_DIR=/path/to/firebase_cpp_sdk && cmake --build . -j
Once the build is finished, run the generated integration_test binary.
firebase_auth vs auth)Different build tools use different naming conventions for products in this repository:
firebase_ (e.g., firebase_auth).:auth:build).build_testapps.py): Typically use the raw module name (e.g., --t auth).[!TIP] If you are unsure about the exact product name or supported flags, run Python scripts with
--help(e.g.,build_testapps.py --help). For shell scripts, run without parameters (Android) or with-h(iOS) to see usage.