一、获取代码(在同一个文件夹下克隆calabash-android及calabash-android-server)
mkdir ~/calabash(创建一个名为calabash的文件夹)
cd ~/calabash(cd进入calabash文件夹)
git clone https://github.com/calabash/calabash-android-server(克隆源码calabash-android-server)
git clone https://github.com/calabash/calabash-android(克隆源码calabash-android)
二、搭建本地编译环境
1、构建test-server:在calabash文件夹下创建一个gem_build.sh文件
(/*内容解释:cd进入到calabash-android/ruby-gem文件夹下安装依赖构建测试服务*/ ../表示文件夹向前退一步)
2、编译TestSever.apk并拷贝到主项目:在calabash文件夹下创建一个apk_build.sh文件
3、在calabash文件夹下新建一个build_all.sh文件
. apk_build.sh
. gem_build.sh
每次修改源码后需要重新编译,实际calabash-android-server只创建编译test-server.apk
三、创建一个测试应用项目检验搭建的环境是否正确运行
1、在calabash文件夹下创建一个calabash-android-testmyapp文件来存储测试项目;
2、在文件下新建终端,创建测试骨架:calabash-android gen
3、配置签名文件.calabash_settings(此文件为隐藏文件在Ubuntu环境下不显示)
4、新建Gemfile文件
gem "calabash-android", path:"../../calabash-android/ruby-gem"
source "http://rubygems.org"
5、测试apk拷贝到该文件夹下
6、新建一个run.sh文件,包含签名运行步骤
rm -r test_servers
mkdir test_servers
bundle exec calabash-android resign Settings.apk
bundle exec calabash-android run Settings.apk features/ttt.feature
7、在该文件夹内运行run.sh文件(运行前记得编译一下环境)
四、client与test-server版本应该一致,否则会报如上错误
在下面两个文件修改
calabash/calabash-android/ruby-gem/lib/calabash-android/version.rb
calabash/calabash-android-server/version
修改后需要再次编译环境,否则修改不生效,再次的运行结果
可以看到环境已经搭建完毕,其中Then ui sleep device未定义是因为calabash-android还未实现跨进程实现自动化测试,实现方案将在下一节说明。
官方文档说明:Debugging TestServer.apk · calabash/calabash-android-server Wiki · GitHub