android 安装gem 命令,中文Win7下成功安装calabash-android步骤

Calabash-android是支持android的UI自动化测试框架,网上看见很多同学说,安装calabash比较费劲,特别是Windows下安装,也没有一个详细的安装手册可供参考。正好,今天在Windows 7 上安装calabash-android成功,忍不住要分享一下。

我为什么要特别在标题中指出中文Win7?

因为我第一次在英文Win7下没碰到任何问题,第二次在中文Win7下安装碰到两个大问题,但都被我求助百度解决了。

第一个问题:中文Win7下不认识手机设备,第一台英文Win7下已经有人安装了豌豆荚。

第二个问题:中文Win7下运行calabash-android,报GBK错误。

calabash简介:

Calabash-android是支持android的UI自动化测试框架,PC端使用了cucumber框架,通过http和json与模拟器和真机上安装的测试apk通信,测试apk调用robotium的方法来进行UI自动化测试,支持webview操作。

安装calabash-android测试环境

安装ruby1.9.3

a8afb7da23484ccbff780a1fc791bf56.png

Ruby2.0据说不兼容旧版本,所以下载稳定版Ruby 1.9.3-p545.7z 解压到D:\下

把ruby的执行目录D:\ruby-1.9.3-p545-i386-mingw32\bin,加入到环境变量Path

运行命令ruby -v,看到如下结果,表示ruby安装成功

C:\Users\asus>ruby -v

ruby 1.9.3p545 (2014-02-24) [i386-mingw32]

安装JDK 7u65

安装JDK网上有很多教程,以下简略介绍。

jdk-7u65-windows-x64.exe

安装,并设置环境变量:

JAVA_HOME=C:\Program Files\Java\jdk1.7.0_65

Path添加内容: ";%JAVA_HOME%\bin;%JAVA_HOME%\..\jre\bin"

启动命令行工具cmd.exe,输入:

C:\Users\asus>javac -version

javac 1.7.0_65

看到上述结果,说明jdk已正确安装。

安装Android SDK

google的网站,国内正常访问不了了。

幸好有个中国好码农整理了一个最新版Android SDK下载网站:

http://www.androiddevtools.cn/

我现在的是 ADT Bundle > 23.0.2 > Windows > 64位

因为我的Windows7已经安装了64位的JDK,所以必须安装64位的Android SDK(主要是64位的Eclipse)

在目录D:\adt-bundle-windows-x86_64-20140702\eclipse下双击文件eclipse.exe

看到Android Develop Kit启动页:

d94d34beb9e631897878f9a0c0133820.png

13fd36aa131642d5104dc30ef8aaf108.png

设置环境变量: ANDROID_HOME=D:\adt-bundle-windows-x86_64-20140702\sdk

安装Ant-1.9.4

下载 apache-ant-1.9.4-bin.zip

解压到D:\下,

设置环境变量:

ANT_HOME=D:\apache-ant-1.9.4

Path添加内容: ";%ANT_HOME%\bin"

启动命令行工具cmd.exe,输入:

C:\Users\asus>ant

Buildfile: build.xml does not exist!

Build failed

看到上述结果,说明ant已正确安装。

gem命令安装calabash-android

设置gem的仓库为taobao

C:\Users\asus>gem sources -l

*** CURRENT SOURCES ***

http://rubygems.org/

C:\Users\asus>gem sources --remove http://rubygems.org/

http://rubygems.org/ removed from sources

C:\Users\asus>gem sources -a http://ruby.taobao.org/

http://ruby.taobao.org/ added to sources

C:\Users\asus>gem sources -l

*** CURRENT SOURCES ***

http://ruby.taobao.org/

用gem命令安装calabash-android

C:\Users\asus>gem install calabash-android

...

Installing RDoc documentation for escape-0.0.4...

Installing RDoc documentation for calabash-android-0.5.1...

C:\Users\asus>calabash-android version

0.5.1

测试android示例应用并解决GBK的问题

下载calabash-android-demoapp

https://github.com/calabash/calabash-android-demoapp

点击 Download ZIP下载calabash-android-demoapp-master.zip,并解压到D:\

ADT中导入并运行calabash-android-demoapp

3030c4154c0bb3ff722b93ef84ae1561.png

1ca11e771d42a7ea800416e8707d0aa4.png 选择: D:\calabash-android-demoapp-master

c400209113c6d68c134ed5c8be79d522.png

安装手机驱动

把手机通过USB线接到电脑上,手机上确保打开“USB调试” 如果电脑屏幕右下角提示,设备驱动已正确安装,请看下一步。

如果电脑屏幕右下角提示,设备驱动安装失败:

f9b862e0c64730a1dfdd0c605aead121.png

需要到网站 http://www.drivergenius.com/ 下载并安装驱动精灵标准版,只要打开驱动精灵,就会引导你安装手机驱动。

3151c9687f5633422acd472a13ff2145.png

驱动安装成功后:

a3319217e042547bd89ed7e3d4c86c8c.png

接下去在ADT中运行Run > Run As > Android Application:

2b85ba156a844cef79867a9829687dfe.png

点击"OK"按钮,ADT就会上传AndroidDemoProject.apk到手机,并启动应用,看到“Hello World, AndroidDemoProject!”

610d5978c9964061e77e36dd02b7512a.png

使用calabash-android运行AndroidDemoProject.apk

打开cmd,进入D:\calabash-android-demoapp-master\calabash目录,运行:

calabash-android run D:\calabash-android-demoapp-master\bin\AndroidDemoProject.apk

81c38a5873689a8c34b0ca84c4bb8730.png

主要错误信息:helpers.rb:105:in `scan': invalid byte sequence in GBK

可是我在英文Windows上运行正确啊,一定是英文系统和中文系统的缺省编码问题:

cmd > 属性 > 选项 > 当前代码页:936 简体中文 GBK

ac6240fc08fa9de2180bec4018474388.png

cmd中输入:chcp 65001

6d68888064178a2927595b9deebdfc71.png

cmd > 属性 > 选项 > 当前代码页:65001 UTF-8

1b351d52d74980985fb27f4e96cb7bda.png

再次运行calabash-android:

09ea7b7fd5abef6e9c1eafe46e7c614b.png

calabash-android打印彩色结果

上面的测试结果提醒:WARNING: You must use ANSICON 1.31 or higher

从 http://adoxa.altervista.org/ansicon/ansi166.zip 下载ansicon并启动, 同样要输入 chcp 65001 再次运行calabash-android:

f04440975e99a3535d458852e48f239f.png

大功告成!

建立ansicon快捷链接

接下去好人做到底,在桌面上建一个cmd快捷链接,点击后直接进入UTF-8编码的ansicon控制台

确保ansicon.exe放置在Path能找到的目录下,比如,我放在ruby的bin目录下:

b602ebdee6470a71e7fbb66e5df70f5e.png

桌面上建一个cmd快捷链接:

20454a78f88844994abfdbdc088d40b5.png

0fa61699dcaaf4463c8bb14da431c19b.png

注意,快捷链接的目标:

%windir%\system32\cmd.exe /k chcp 65001&&ansicon

打开该快捷链接后:

5834898b1eed5e2ac1b8c510dec0e756.png

calabash-android输出html报告文件

calabash-android run ../bin/AndroidDemoProject.apk --format html --out=report.html

2e309047b62f9d5c47b0379f34129cb9.png

12770c5064fb287bd92917b95852e99c.png

关于GBK编码问题的后续补充

我回去看了英文Win7的cmd.exe的编码,也是GBK,但是没有出现过“invalid byte sequence in GBK ”的问题

我在中文Win7上用chcp 65001设置成UTF-8,并测试成功后,再尝试直接cmd.exe/ansicon.exe/powershell.exe保持GBK编码的情况下,直接运行calabash,再也没有报过“invalid byte sequence in GBK ”的问题,难道第一次正确运行后,自动修改了什么配置吗?

在中文Win7上用chcp 65001设置成UTF-8后,如果calabash的脚本中包含中文,运行calabash时不能打印出中文内容。

在中文Win7的GBK编码的命令行下,如果calabash的脚本中包含中文,运行calabash时能打印出中文内容。

在英文Win7的GBK编码的命令行下,如果calabash的脚本中包含中文,运行calabash时能打印出中文内容。

在Ubuntu Linux的控制台下,如果calabash的脚本中包含中文,运行calabash时能打印出中文内容。

算了,不去找原因了,记住就是了。

所以,建立calabash测试环境的容易程度:

Linux > 英文Windows > 中文Windows

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值