专栏文章 如何拉取远程仓库的分支到本地测试

fishfish-yu · December 04, 2019 · 126 hits

注:我们的Airtest官方公众号(AirtestProject)会持续更新大家对于Airtest感兴趣的问题,欢迎有需要的同学关注并查看我们更多的内容。
如想向我们反馈关于AirtestProject想了解的问题,欢迎到公众号后台留言。

前言

Airtest是一个开源项目,所以我们可以在 https://github.com/AirtestProject/Airtest 这里看到它的源码,除了直接看源码学习之外,我们也可以clone或者fork一份项目下来自行修改,同时还能够试用到Airtest的开发分支。

关于这个GitHub上Airtest源码的远程仓库,我们主要想与大家分享两方面的内容:

  1. 如何在本地安装并使用Airtest在GitHub上的源码;
  2. 如何上传本地的修改到Airtest仓库上给其他用户使用。

因为内容比较多,所以我们分俩期推文来介绍上述内容。今天这篇文章就是向大家介绍如何在本地安装并使用Airtest在Github上面的源码。

安装使用GitHub上的Airtest源码

先从1个具体的例子来看看第一部分的内容。Airtest远程仓库最近增加了一些新的修改,包括Android10的初步支持,以及报告部分样式的调整和BUG修复,如果我们想试用一下的话,就需要拉取Airtest仓库里面这个分支的内容到本地上,再进行测试。

具体的步骤如下:

安装Git客户端

首先,我们需要在自己的计算机上安装一个Git客户端(安装包可以从Git官网上获取)。

克隆Airtest的远程仓库到本地

找到你想存放Airtest远程仓库的目录,右键点击Git bush here,然后在命令行中输入以下命令:

git clone git@github.com:AirtestProject/Airtest.git 

运行之后客户端就会把Airtest的远程仓库下载到你的本地目录:

如果运行命令以后,并没有开始下载,而是出现如下提示:

这表明使用命令行去访问GitHub的时候,需要先填写身份认证,即需要新增SSH密钥到你的GitHub账户上(仅需要做一次):

  1. 在客户端运行clip < ~/.ssh/id_rsa.pub,即可将SSH密钥复制到剪切板上

  2. 登录GitHub,点击右上角的头像,选择Settings

  3. 单击左侧的菜单栏中的SSH and GPG keys

  4. 再单击New SSH key

  5. title里填写自定义的描述标签,在key里面,把剪切板的密钥复制进去

  6. 单击 Add SSH key,再输入你的GitHub密码确认即可

拉取远程仓库的分支到本地

“Android10支持”相关分支的Pull Requesthttps://github.com/AirtestProject/Airtest/pull/618 ,也就是说id是618,
要把这个PR拉取到本地,需要先进去刚才克隆的Airtest文件夹里面,右键点击Git bush here,再执行以下代码:

git fetch origin refs/pull/618/head:pr618

这条指令的意思是,将远程仓库的618号pull request拉取到本地的pr618分支上。

切换到pr618的分支

使用如下代码即可切换到pr618这个分支:

git checkout pr618

将Airtest安装到本地python环境

在测试前还需要先将这个Airtest仓库安装到本地python环境中,在命令行执行pip install -e .(不要忘记最后是个.号),因为我们提升了yosemite.apk的版本号,所以也可能会提示重新安装yosemite.apk

安装成功后,你还可以用pip list检查一下,当前的Airtest是不是指向你克隆Airtest的目录。

测试支持Android10的分支

自此,我们就把支持Android10的pr拉取到我们本地上了,可以自由进行测试。如果大家在测试过程中遇到了问题,也欢迎大家在 https://github.com/AirtestProject/Airtest/pull/618 这个PR的页面下方进行留言。

上传本地的修改到远程仓库上

这部分内容我们下期再见~

最后,如果大家对Airtest有疑问、BUG、建议,请到https://github.com/AirtestProject/AirtestIDE/issues 发布issue,我们会有专人解答。同时,我们还提供了官方QQ群给大家沟通交流,目前1群已满,欢迎大家加入2群:

No Reply at the moment.
需要 Sign In 后方可回复, 如果你还没有账号请点击这里 Sign Up