[appium導入 その1] まっさらmacにappiumをインストールしてappium-doctorするまで

その2はこちら↓
[[appium導入 その2] iOSアプリのサンプルテストコード(Ruby)を動かすまで - Qiita](http://qiita.com/sakaimo/items/d1a7fa779dc5e145feb2)

# 背景

AppiumでiPhoneアプリの自動テストを試したい！ だけど私のPCがWindowsでやりにくい！（Xcode的な意味で） ということで、余ってた(うそ)macを貸してもらって、そこでappiumを動かせるようになるまでの道のりをメモしておきます。


# appiumとは？

> AppiumとはSelenium作者のJason Huggins氏を中心に開発されているスマホやタブレットのテスト自動化を実現するためのテストフレームワークの一種です。

[「Appiumの使い方」を分かり易くまとめてみました！](http://softwaretest.jp/labo/tech/labo-456/)より引用


# 環境

## ハードウェア

|モノ|スペック|
|---|---|
|マシン　　| Mac mini (Mid 2011)|
|mac OS 　|10.11.4|
|プロセッサ |2.5GHz Intel Core i5|
|メモリ　　　　　　　　|8GB|


## ソフトウェア

まっさらな状態のmacをもらいました。これから下記のものをインストールしていきます。

|モノ|バージョン|
|---|---|
|Xcode|7.3 (7D175)|
|Homebrew|0.9.5|
|nvm|0.31.0|
|npm|2.14.20|
|node|4.4.1|
|appium|1.5.0|


## 作業ユーザー、ディレクトリ

|項目|値|
|---|---|
|ユーザー|sakaimo|
|ディレクトリ|/Users/sakaimo/repos|

# Xcodeのインストール

AppStoreからですが、ダウンロードに１５分〜２０分くらいかかりました。辛抱して待つ。
ダウンロードしたら一度起動して、利用規約に同意しておきます。(そうじゃないと次のHomebrewインストールができない)　ちなみに私はXcodeでの開発経験はほぼゼロです。次回出てくるサンプルコードをダウンロードして動かす、程度の知識です。

# Homebrewのインストール

参照：[Homebrew — OS X 用パッケージマネージャー](http://brew.sh/index_ja.html)

root権限が必要なのでsudoしました↓

```
$ sudo /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
$ brew -v
Homebrew 0.9.5 (git revision d700; last commit 2016-03-28)
```

# nvmとnpmとnodeをインストール

参照：[Appiumを使えるようになるまで（Mac編） - Qiita](http://qiita.com/furusin_oriver/items/2d104ccdb7f68929ebfd)
あと、nvmはNode Version Managerのことだそうです。



## cloneする

```
$　git clone git://github.com/creationix/nvm.git ~/.nvm
$　source ~/.nvm/nvm.sh
$ nvm --version
0.31.0
```

ついでに `~/.bash_profile`に下記を追記します。(次にターミナル開いた時に読み込むため）

```:~/.bash_profile
source ~/.nvm/nvm.sh
```

## バージョンを確認してインストール

インストール可能なバージョンリスト

```
$ nvm ls-remote
（ずらーっと出てくる)
```

[Node.js 5.0がリリース。奇数バージョンは最新機能版、偶数バージョンは長期サポート版 － Publickey](http://www.publickey1.jp/blog/15/nodejs_50.html)によると

> 奇数バージョンは最新機能版、偶数バージョンが長期サポート版

との事なので、この時点で最新の安定版(長期サポート版）を入れてみます。


**※ `sudo` しないこと！(後述)**

```
$ nvm install v4.4.1
$ node -v
v4.4.1
```

よし。

そしていつの間にか入ってたnpm(Node Package Manager)

```
$ npm -v
2.14.20
```

#　JDKのインストール

Java Developer Kitが入ってないとappiumインストール時に下記のようなメッセージが出てインストールが止まってしまいます。

![jar.png](https://qiita-image-store.s3.amazonaws.com/0/8612/f7bad529-b551-1668-bac9-2a1a288a0d46.png)


なので、JDKを入れます。

- [Java SE - Downloads | Oracle Technology Network | Oracle](http://www.oracle.com/technetwork/java/javase/downloads/index.html) に行って
- JDKの「Download」をクリックして
- 次ページで[Mac OS X]　をダウンロード
- ダウンロードしたdmgファイルをダブルクリックしてインストール

```
$ java -version
java version "1.8.0_77"
```


### 余談:dmgファイルって何？

[Mac初心者必見！.dmgファイルとは？ソフト(アプリ)のインストール方法 | Leeway's Life Log](http://lee-ways.com/macdmg/)

>dmgファイルとは、Windowsでいう「.iso」などと同じ仮想ディスクイメージです。

だそうです。


# appiumのインストール

[Appium: モバイルアプリのテスト自動化はすごいことになった](http://appium.io/getting-started.html?lang=ja)

によると

> Make sure you have not installed Node or Appium with sudo, otherwise you'll run into problems

てことなので、NodeとAppiumは**sudoで入れちゃだめ**のようです。

```
$ npm install -g appium
$ appium -v
1.5.0
```

ｷﾀ━━━━(ﾟ∀ﾟ)━━━━!!


他の記事を見ると、この後

```
$ appium-doctor
```

するといいよって書いてあるのですが、

```
$ appium-doctor
-bash: appium-doctor: command not found
```

ってなるのですよね。


# appium-doctorのインストール


なければ入れろ、ということで。

```
$ npm install -g appium-doctor
```

でインストール完了。この後に

```
$ appium-doctor --ios

(中略)

info AppiumDoctor The following command need be executed: xcode-select --install
? Fix it: (Use arrow keys)
❯ yes
  no
  always
  never
```

yesでreturnをすると途中で下記のメッセージ

![xcode-select.png](https://qiita-image-store.s3.amazonaws.com/0/8612/f4e95ab1-0c36-1713-d16a-fcb3cbf0cb0c.png)

が表示されたので「インストール」をクリック。

インストール完了後に下記を実行して、

```
$ appium-doctor --ios
info AppiumDoctor ### Diagnostic starting ###
info AppiumDoctor  ✔ Xcode is installed at: /Applications/Xcode.app/Contents/Developer
info AppiumDoctor  ✔ Xcode Command Line Tools are installed.
info AppiumDoctor  ✔ DevToolsSecurity is enabled.
info AppiumDoctor  ✔ The Authorization DB is set up properly.
info AppiumDoctor  ✔ The Node.js binary was found at: /Users/sakaimo/.nvm/versions/node/v4.4.1/bin/node
info AppiumDoctor  ✔ HOME is set to: /Users/sakaimo
info AppiumDoctor ### Diagnostic completed, no fix needed. ###
info AppiumDoctor
info AppiumDoctor Everything looks good, bye!
```

ってなればOK！

ちなみにandroidアプリのための環境を確認したいときは`--android`オプションで確認できます。

```
$ appium-doctor --android
info AppiumDoctor ### Diagnostic starting ###
WARN AppiumDoctor  ✖ ANDROID_HOME is NOT set!
WARN AppiumDoctor  ✖ JAVA_HOME is NOT set!
WARN AppiumDoctor  ✖ adb could not be found because ANDROID_HOME is NOT set!
WARN AppiumDoctor  ✖ android could not be found because ANDROID_HOME is NOT set!
WARN AppiumDoctor  ✖ emulator could not be found because ANDROID_HOME is NOT set!
info AppiumDoctor ### Diagnostic completed, 5 fixes needed. ###
info AppiumDoctor
info AppiumDoctor ### Manual Fixes Needed ###
info AppiumDoctor The configuration cannot be automatically fixed, please do the following first:
WARN AppiumDoctor - Manually configure ANDROID_HOME.
WARN AppiumDoctor - Manually configure JAVA_HOME.
WARN AppiumDoctor - Manually configure ANDROID_HOME and run appium-doctor again.
info AppiumDoctor ###
info AppiumDoctor
info AppiumDoctor Bye, run appium-doctor again when the all the manual fixes have been applied!
```

android用の環境は整ってないようです。(今回はiOSアプリだからスルーしちゃう)


参照:[GitHub - appium/appium-doctor: Tool to verify appium installation](https://github.com/appium/appium-doctor)


# 今回はここまで

これでappiumでiOSアプリを動かす(という表現でいいのかな)準備ができたようです。次回はサンプルコードを使って実際にアプリを動かしてみますー。