2014/11

Chai+Zuul+TravisCI+SauceLabsでマルチブラウザ自動テスト

タイトルの通りの環境を以下のJavascriptで作ってみた。


Sauce Test Status



マルチブラウザテスト(IEのテスト)をやりたくてTestlingを試してみたけど、
動いていないようなので
https://github.com/substack/testling/issues/88 で紹介されていたZuulとSauceLabsで環境を作ってみた。


Mochaのテストがすでにある場合はとても簡単で
https://github.com/defunctzombie/zuul/wiki/Quickstart に書いてある通りにZoolとSauceLabsのセットアップを行うだけなので読めばわかる。

TravisCIを使っていればそれも合わせて連携することができる。


注意すべき点は、SauceLabsのアカウントをgithubのアカウントで作った後に、
SauceLabs内でサブアカウントを作成すること。
(gmailなら<アドレス>+saucelab_myproject@gmail.comみたいに+でメール拡張できるので便利。)

そして、作成したサブアカウントのユーザー名と、APIキーを使用してzuulを動かすこと(.zuulrcおよびtravid.ymlの設定)。
そうしないとテストのセッションがアカウントのグルーバルで実施されてしまうので
バッジのurlが

https://saucelabs.com/browser-matrix/georgeosddev.svg

になってしまう。サブアカウントを作成しておけば

https://saucelabs.com/browser-matrix/georgeosddev_jsutils.svg

みたいな感じで複数のプロジェクトに対応することができました。

  • Nov
  • 15
  • 2014

IT

Xitrum 3.19

Xitrum 3.18 Released!

https://groups.google.com/d/msg/xitrum-framework/D-7gzo-QVsQ/tWdBfBWaB_8J

主な変更点

1. Netty

Nettyのバージョンが 4.0.23 to 4.0.24に更新されました:
http://netty.io/news/2014/10/29/4-0-24-Final.html

Netty 4.0.24 はPOODLE脆弱性対策のためSSLv3.0が無効になりました。

Xitrum組み込みのHTTPSサーバー(それはNettyをベースにしています)を使用している場合、プロジェクトをXitrum3.19に更新することが推奨されます。

(もし Xitrum 2.x 系を使用している場合、Xitrum 2.16に更新してください。)

2. Beforeフィルターでtrue/falseを返す必要がなくなりました。

以前は、Beforeフィルターは必ずtrue/falseを返却する必要がありましたが、
今バージョンからはBeforeフィルターで何かをrespondした場合、その後actionは呼ばれることはありません。

3. いくつかの便利なメソッドが追加されました。

https://github.com/xitrum-framework/xitrum/issues/466
(xitrum.util.Loader.bytesToFileの追加)
https://github.com/xitrum-framework/xitrum/issues/467
(xitrum.util.SeriDeseriに関する変更)
https://github.com/xitrum-framework/xitrum/issues/474
(SessionVerに対するisEmpyの追加)

4. respondViewにテンプレートファイルのロケーションを文字列として渡すことができるようになりました。

以前は、1つのアクションに複数のテンプレートを紐付ける場合
* ダミーアクションクラス/トレイトをテンプレート毎に作成する必要があり
* respondViewの際にそのクラス/トレイトを指定する必要がありました。

今バージョンからは、テンプレートファイルのロケーションを文字列で指定するだけで
複数のテンプレートを使い分ける事ができます。
詳しくはガイドを参照してください。
http://xitrum-framework.github.io/guide/3.19/ja/action_view.html#id7

-----
3.18 から 3.19 へのアップデート方法

Xitrumのバージョンを3.19にXitrum-scalateのバージョンを2.3に更新する必要があります。

              -libraryDependencies += "tv.cntt" %% "xitrum" % "3.18"
              +libraryDependencies += "tv.cntt" %% "xitrum" % "3.19"
              
              -libraryDependencies += "tv.cntt" %% "xitrum-scalate" % "2.2"
              +libraryDependencies += "tv.cntt" %% "xitrum-scalate" % "2.3"
              
              
参考
https://github.com/xitrum-framework/xitrum-new/commit/0235cdfa768161b12f8c414d8f3151a7f8c3ea59