この記事は「Robot Framework Advent Calendar 2017 - Qiita」の13日目の記事です。
前回、エディタやIDEのRobot Frameworkプラグインを試してみました。
エディタやIDEのRobot Frameworkプラグインについて - メモ的な思考的な
Robot Framework専用のエディタがないかを調べたところ、
- RIDE
- RED (Robot Editor)
がありました。
ただ、RIDEはPython3.x系では動作しないとのことでした*1。
Notice that similarly as Robot Framework, RIDE does not yet support Python 3. Notice also that on OS X RIDE requires 32-bit Python version.
https://github.com/robotframework/RIDE/wiki/Installation-Instructions
手元の環境がPython3.x系であるため、今回は RED
(Robot Editor) を試してみました。
目次
環境
- Mac OS X El Capitan 10.11.6
- Python 3.6.3
- Robot Framework 3.0.2
- RDE 0.8.1
- Java 1.8.0 144
- インストール済という前提
今回はMacにインストールしましたが、WindowsやLinuxでも動作するようです。
REDのインストール
インストール方法は以下に記載がありました。
今回はREDを試すだけなので、一番お手軽なGitHubのzipを利用します。
REDのreleaseページより、環境に合わせて最新版をダウンロードします。
Releases · nokia/RED
Macであれば、 RED_0.8.1.20171123105248-macosx.cocoa.x86_64.zip
をダウンロードします。
このzipには、Eclipse + RDE が含まれています。そのため、別途Eclipseをインストールする必要はありません。
もしEclipseが手元にある場合は、RDEだけをインストールすれば良いようです。
ダウンロードしたzipを展開した後に開くと、 開発元が未確認のため開けません。
というエラーメッセージが表示されました。
そのため、以下を参考にしてREDを実行しました。
macOS Sierra: 開発元が未確認のアプリケーションを開く
プロジェクトの作成
File > New > Robot Project を選択します。project nameは任意の名前をつけます。
Robot Frameworkのインストール
REDのワークスペースの中でRobot Frameworkをインストールすると、自動的に認識されます。
デフォルトのワークスペースは以下の通りです。
/path/to/rf_red/Eclipse.app/Contents/MacOS/workspace
ターミナルを使って、デフォルトのワークスペースの中で、Robot Frameworkとそのライブラリのインストールを行います。
# Python3の仮想環境を作成 $ python -m venv rfenv363 # 仮想環境を有効化 $ source rfenv363/bin/activate # とりあえずRobot FrameworkとSeleniumLibraryを入れる (rfenv363) $ pip install robotframework-selenium ... Successfully installed robotframework-3.0.2 robotframework-seleniumlibrary-3.0.1 selenium-3.8.0
仮想環境のRobot Frameworkが認識されているかを、 環境設定 > Robot Framework > Install Framework
にて確認します。ワークスペースの中であれば、自動的に認識されているはずです。
もし存在しなければ、先ほど作成した仮想環境の bin
ディレクトリを指定します。
補完設定
設定内容
以下を参考に、デフォルトから補完設定を修正します。
Eclipseの補完設定をカスタマイズして爆速コーディング - ser1zw's blog
REDのRobot Framework設定はこんな感じでした。
ただ、Robot Frameworkでは日本語のテストケース名も書けるのですが、自動有効化トリガーとして設定するのが難しいです*2。
そのため、 Ctrl + Space
というショートカットも併用します。
また、専用IDEだけあり、SeleniumLibrary 3系のキーワードも問題なく補完してくれます。
コンテンツ・アシストの様子
日本語のみの場合は、 Ctrl + Space
にてこんな感じで補完されます。
プレフィックスとして英語を付けていると、自動補完されます。見た目は日本語のみと同じですね。
SeleniumLibrary3.x系も自動補完されます。
Robot Frameworkのテストケースを作成
IDEの準備ができたため、Robot Frameworkのテストケースを作成します。
上記で作成したmyprojectを右クリック > New > Robot Test Suite
にてテストケースファイルを作成します。
今回は、こんな感じのテストケースファイルを作成しました。
*** Settings *** Library SeleniumLibrary *** Keywords *** はろー Log To Console ワールド myはろー Log To Console こんにちわ *** Test Cases *** テスト はろー myはろー Log To Console hello
テストの実行
REDのコンソールよりテストを実行してみます。
============= Myproject ============= Myproject.Mytest ============= ??? ???? ????? hello | PASS | ------------------ Myproject.Mytest | PASS |
テストはパスしたものの、コンソールに出力した日本語が文字化けしてしまいました。
Eclipseの事例では、eclipse.ini に追記すると文字化けが解消されるとの記載がありました。
Eclipseのコンソール文字化け解決法。 - Qiita
同じようなファイルを探してみたところ、それっぽいのが以下にありました。
/rf_red/Eclipse.app/Contents/Eclipse/RED.ini
ただ、11行目のように記載してREDを再起動しましたが、結果は同じく文字化けしたままでした。
1 -startup 2 ../Eclipse/plugins/org.eclipse.equinox.launcher_1.4.0.v20161219-1356.jar 3 --launcher.library 4 ../Eclipse/plugins/org.eclipse.equinox.launcher.cocoa.macosx.x86_64_1.1.550.v20170928-1359 5 --launcher.appendVmargs 6 -vmargs 7 -Xms512m 8 -Xmx2g 9 -XstartOnFirstThread 10 -Dorg.eclipse.swt.internal.carbon.smallFonts 11 -Dfile.encoding=UTF-8
最後のコンソール部分は文字化けしたままですが、Macのターミナルから実行すると問題ないので気にしないことにしました。
以上、Robot Framework専用のIDEのREDを使ってみました。Nokiaで使われていることもあり、十分実用的なものでした。
ちなみに、メーリングリストには
To create RED we needed a valid business reason to do so. There is a big group of Eclipse users in Nokia who would take advantage in having integrated dev&testing environment. IntelliJ is also considered but we still have a lot to do in RED.
という投稿もありました。IntelliJにも来るといいなー。
https://groups.google.com/d/msg/robotframework-users/c8tNdBVL5WE/kT-uQDROEQAJ
*1:なお、fork先ではexperimental support としてPython3.xで動くようです https://github.com/robotframework/RIDE/issues/1719
*2:プレフィックスとして「test_」などを付けておけば、自動補完は動作しますが...