您是否有任何资源解释如何使用Firebase测试实验室和GitLab管道?

问题描述:

我想在Firebase测试实验室中使用espresso运行我的仪器测试,每次提交到GitLab中的某个分支。我已经使用Docker和Fastlane构建,部署和发布应用程序,但是我无法在Google上找到任何将测试实验室与这些工具集成在一起的任何内容。你们对此有所了解,我可以用它来实现使用GitLab的CI系统来运行仪器测试吗?您是否有任何资源解释如何使用Firebase测试实验室和GitLab管道?

+0

你是说你不能使用gcloud命令行来运行测试? –

+0

我可以使用它,但我不知道在使用gitlab时应该把它放在哪里。在测试项目中,我能够在jenkins的firebase文档之后使用gcloud运行测试。然而,真正的项目是在gitlab中托管的,我期望它能够自动运行测试。 –

我们最近与Google Firebase合作,将此功能添加到Buddybuild。基本上,如果你在应用程序上运行,我们将使用FTL在真实设备上运行仪器测试。更多信息可以在这里找到:https://www.buddybuild.com/blog/running-android-ui-tests-on-physical-devices

高兴地回答你可能有任何进一步的问题!

可以使用gcloud从CI系统调用测试实验室。有关于如何为JenkinsCircle CI执行此操作的说明。

测试实验室用户还有一个Slack通道。通过https://firebase.community加入并找到#test-lab频道。那里的几个用户已经成功地将测试实验室连接到他们的CI系统。

经过一段时间并获得了更多Docker经验,我发现如何在容器中安装和设置带有服务帐户的gcloud。这些命令在google's gcloud image's Dockerfile中是正确的。我只是将它们复制到我的Dockerfile中,因为我不想使用它们的映像,但在我的gcloud CLI中。

也跟在gcloud's documentation我可以建立命令登录与服务帐户没有用户交互。唯一需要的是将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 "[email protected]" 
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命令(因为它是被用来运行所有测试/建筑/部署任务)发送到firebase以及将用于测试的设备。