久々にJasmine Titaniumをアップデートした

JasmineをTitanium上で動かすというプロジェクトは他にもちらほらあるものの、自分にとって使いやすいものが今のところないので、まだしばらくこちらのアップデートを続けていくと思われます。

Drillbitに関しては試す気力が回復しない。

更新内容

  • specs.shをspecs.pyに
  • バージョン依存を解消
  • libとspecのディレクトリをネスト可能に
  • 出力をファイルに保存できるように
specs.shをspecs.pyに

いろいろやろうとするとシェルスクリプトが厳しくなってきたので、脱シェルスクリプト。
それではさて何で作ろうか、というところでTitaniumのコマンドラインツールがPythonなのでそれに合わせてみた。

  • 構文
  • コマンドライン引数のパース
  • ファイル操作
  • ファイルパスの扱い

基礎的なことがわからないのでいちいち調べなければならずもたついたが、けっこう気持ちよく書けたのでPythonも悪くないと思った。

バージョン依存を解消

$PROJECT_DIR/.settings/com.appcelerator.titanium.mobile.prefsにMOBILE_PROJECT_SDK_VERSIONがあるのを発見したので、ハードコードしていたバージョン番号をここから取得することにした。

今後はSDKのバージョンが上がるごとにファイルを変更したりする必要がなくなった。

libとspecのディレクトリをネスト可能に

需要があるみたい&自分でも需要ができたので対応した。

  • lib/controllers/*.js
  • lib/models/*.js

に対して

  • spec/controllers/*_spec.js
  • spec/models/*_spec.js

といった具合にファイルを配置できるように。

出力をファイルに保存できるように

標準出力の内容をそのままファイルに保存できる-oオプションを追加した。

Android対応

これは以下の理由でひとまずあきらめた。

  • 処理をエミュレータに投げた後のTi.API.info等のログが表示されない
  • エミュレータが非同期で動作するので実行時にはapp.jsが元にもどってしまっている

出力をファイルに書き込むとか、スペックの実行が終わるまでapp.jsの内容を戻さないとか言う処理を入れればいけそうな気がしているので、やる気がたまったら対応するかもしれない。

思っていること

  • Resources以下にテストコードを置くのは良くないのではないか
  • 深刻な英作文能力不足
  • CI対応?

思っているだけですよ。