我想在 Firebase 测试实验室中使用 espresso 运行我的仪器测试,每次提交到 GitLab 中的一个分支。我已经使用 Docker 和 Fastlane 构建、部署和发布了应用程序,但我在谷歌上找不到任何将测试实验室与任何这些工具集成的东西。你们知道我可以用来实现使用 GitLab 的 CI 系统运行仪器测试的任何信息吗?
3 回答
我们最近与 Google Firebase 合作将此功能添加到 Buddybuild。基本上,如果您载入应用程序,我们将使用 FTL 在真实设备上运行您的仪器测试。更多信息可以在这里找到:https ://www.buddybuild.com/blog/running-android-ui-tests-on-physical-devices
很高兴回答您可能有的任何进一步的问题!
可以使用 gcloud 从 CI 系统调用测试实验室。有关于如何为Jenkins和Circle CI执行此操作的说明。
还有一个供测试实验室用户使用的 Slack 频道。通过https://firebase.community加入并找到#test-lab 频道。那里的一些用户已成功将 Test Lab 连接到他们的 CI 系统。
经过一段时间并获得了更多使用 docker 的经验,我发现了如何在容器中使用服务帐户安装和设置 gcloud。这些命令在谷歌的 gcloud 镜像的Dockerfile 中是正确的。我只是将它们复制到我的 Dockerfile 中,因为我不想使用它们的图像,但我的中有 gcloud CLI。
同样按照gcloud 的文档,我可以构建命令以使用服务帐户登录而无需用户交互。唯一需要做的就是将 keyfile.json 复制到容器中。
gcloud auth activate-service-account $GOOGLE_AUTH_EMAIL --key-file /path-to/keyfile.json --project $GOOGLE_PROJECT_ID
最后,这是我添加到原始 Dockerfile 中的部分:
ENV GOOGLE_PROJECT_ID "yetanothertest-91d46"
ENV GOOGLE_AUTH_EMAIL "docker@yetanothertest91d46.iam.gserviceaccount.com"
ENV GOOGLE_KEY "keyfile.json"
ADD keyfile.json /home
RUN apt-get update && apt-get install -qqy \
curl gcc python-dev python-setuptools apt-transport-https lsb-release && \
easy_install -U pip && \
pip install -U crcmod
RUN export CLOUD_SDK_REPO="cloud-sdk-$(lsb_release -c -s)" && \
echo "deb https://packages.cloud.google.com/apt $CLOUD_SDK_REPO main" > /etc/apt/sources.list.d/google-cloud-sdk.list
RUN curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -
RUN apt-get update && apt-get install -y google-cloud-sdk
RUN apt-get -y remove gcc python-dev python-setuptools
RUN rm -rf /var/lib/apt/lists/*
RUN gcloud config set core/disable_usage_reporting true && \
gcloud config set component_manager/disable_update_check true
RUN gcloud auth activate-service-account $GOOGLE_AUTH_EMAIL --key-file /home/keyfile.json --project $GOOGLE_PROJECT_ID
剩下要做的是在 Fastlane 中添加 gcloud 命令(因为它被用于运行所有测试/构建/部署任务)以将 apk 与将用于测试的设备一起发送到 firebase。