投稿

6月, 2015の投稿を表示しています

Jenkins

SeleniumのテストをJenkinsで定期実行させる。 JenkinsにはXvfbプラグイン、GitBucketプラグインを入れる。 JenkinsはXMLのunittest結果しか受け入れないようなのでunittest-xml-reportingモジュールをpipでインストールしてテストコードを若干修正する。 https://github.com/xmlrunner/unittest-xml-reporting Selenium WebDriverを使ったpythonのテストコードはGitBucketにpushする。 Jenkinsのジョブは「フリースタイル・プロジェクトのビルド」として作成する。 GitBucketのURLはGitBucket上のプロジェクトのURL GitのレポジトリのURLはGitBucketからレポジトリURLをコピペする。 ビルド・トリガは定期実行にする。H(HASH)を使えと言われるがテストなので気にしない。 「Start Xvfb before the build, and shut it down after.」にチェックを入れて、詳細設定で名前を決めておく。「Xvfb screen」はデフォルトの1027x768x24で使う。もっと大きいほうが良い場合もあるだろう。 「ビルド」はunittestのpythonコードを指定する。workspaceにcloneして実行するようで、python テストコード.pyとしておけばちゃんと実行してくれる。 「ビルド後の処理」の「JUnitテスト結果の集計」で出力されるXMLのパスを指定する。出力されるXMLファイルはworkspace内に作られるので相対パスを指定し、ワイルドカード指定で*.xmlとして指定する。 これであとは手動でビルドを実行しログを見ながらトラブルシュートする。 プラグインとGUIのおかげで難しいことが簡単にできそうなのがJenkinsの良い所か。

Selenium

SeleniumでWebアプリの簡単な自動実行を試す。 Selenium IDEとSelenium WebDriverを本家サイトからダウンロード。書いている時点ではそれぞれのバージョンは2.9.0と2.46.0。 http://www.seleniumhq.org/download/ Selenium IDEはFirefoxのプラグインという記事を読んでいたのでFirefoxのアドオンページを探しに行ったけどそれらしいものがない。上記ページの下の方にxpiファイルがあるのでこれをダウンロードしてFirefoxにドロップすれば入る。 WebDriverはpython binding版を使う。Firefoxで動けばいいので他のブラウザ用のファイルは気にしない。 Selenium IDEは目的のサイトをGUIで操作すれば記録してくれるけど、Playbackは難しい。勝手にWaitを入れてくれないので試行錯誤する。基本はclickAndWaitとpauseで乗り切る。pauseの待ち時間パラメータは「対象」に入れるとかわからん。「値」に入れてもエラーにならず待ち時間0で進むので悩んだ。 これをpython向けにexportしたがWaitやpauseはexportされない。ググると仕様とのこと。いやいや、何のためのIDEやねん。とりあえずAndWait系はWebDriverWait(hogehoge,秒数).until(EC.element_to_be_clickable)に置き換える。単純なpauseはtime.sleep(秒数)に置き換える。 selectはselect_by_visible_textになっていたのをselect_by_valueに直す。 これでWindows PC上でpythonから自動実行できるようになった。 これを我が家のNASサーバで動かす。NASサーバ側もSelenium WebDriverを入れる必要がある。python bindingのインストール手順はpipが簡単とのことなのでNASにpython-pipを入れてseleniumを入れる。 sudo pip install -U selenium PC側にcygwin/Xを入れて、ssh -YでNAS側にログインする。NAS側にFirefoxを

Xcode4.6.3 on Yosemite

Xcode6だとOpenCL1.0用のバイナリーが出力できない?我が家のMac mini 2009 lateだと動作しない。 試しに古いXcodeを入れてみた。 http://dev.classmethod.jp/smartphone/iphone/xcode-install-version/ が、Xcode4.6.3は起動すると例外が発生して起動しない。 やっぱり新しいPCがほしいなぁ。

svn to git

GitBucketが動き出したのでリポジトリを移す。 この辺のページを参考にgit svn clone -sする。 http://qiita.com/hidekuro/items/4727715fbda8f10b6b11 GitBucketにログインして同名のプロジェクトを作る。 Initialize this repository with a READMEのチェックボックスを外してレポジトリを作るとpushするためのURLを含むコマンドが表示されるので、これをコピペして実行する。アップロードでアカウント入力が求められるのでGitBucketで作ったアカウントを入力する。 意外にあっさり移行ができた。

Gitサーバーを立てる

従来ソースコード管理はSubversionを使っていたがGitを使ってみる。最新のxcodeは標準でGitクライアントの機能があるようだし。 NASサーバはubuntu 14.04 LTSが動いている。Ubuntuのサーバーガイドのページにgitoliteが書いてあったのでこちらを試そうと考えた。 https://help.ubuntu.com/lts/serverguide/git.html が、色々ぐぐるとGitHubクローンがいくつかあるらしい、会社でもGitLabという名前を聞いたことがある。でも、今回はGitBucketを試すことにする。簡単に入れらそうなので。 とりあえずtomcat7を入れて、tomcat7-adminも入れて、GUIベースで管理を目指す。 tomcat-managerのデフォルトアカウントが無いので設定が必要。 /etc/tomcat7/tomcat-users.xml に以下の行を追加。 ダウンロードしたgitbucket.warをアップロードすると50MB制限に引っかかってエラーになる。以下のページを参考に上限値を変更する。 http://blog.giantgeek.com/?p=1000 巨大なためかデプロイに時間がかかる(数分)、起動も数分かかる。 が、起動しない。catalina.outを見ると/usr/share/tomcat7にファイルを作ろうとして失敗している様子。 org.h2.jdbc.JdbcSQLException: ファイル "/usr/share/tomcat7/.gitbucket" を作成中にエラーが発生しました Error while creating file "/usr/share/tomcat7/.gitbucket" [90062-180] /etc/passwdを見るとtomcat7ユーザーのHOMEディレクトリは確かに/usr/share/tomcat7になっており、gitbucketのリリースノートにもHOMEディレクトリにgitbucketファイルを作ると書いてある。 Windows向けのInstallationを見るとGITBUCKET_HOME環境変数に保存先を設定している記述があったの