2016-06-16 bouzuya/beater 0.4.0 をつくった
bouzuya/beater 0.4.0 をつくった
bouzuya/beater は alt mochajs/mocha を意識した simple な test framework 。yosuke-furukawa/eater に影響されてつくりはじめた。
0.4.0 の変更は browser support で、利用者側に影響のある変更を含んでいる。
- bouzuya/beater の api の変更
- CLI 部分の bouzuya/beater-cli への抽出
- bouzuya/beater-reporter を interface のみに変更
- bouzuya/beater-cli-reporter の追加 (標準 reporter を beater-reporter から移動)
- bouzuya/beater-html-reporter の追加
API の変更など詳細は bouzuya/beater の README を参照してほしい。
まず browser support とは何か。ぼくの中では browser の上で beater および beater 用 test を動かし、結果を表示できることが browser support だ。browser で beater を動かすために、 browserify / webpack などでの require()
の変換は許容する。また browser support は beater が browser を動かすことではなく、あくまでも browser の上で beater を動かすことだ。
では、なぜ browser support が必要なのか。それは beater が "post mocha" を目指す (2016-06-08) からだ。いまの気持ちとしては "alt mocha" 。mocha の代替の選択肢を目指したい。"alt mocha" のほかには Kyoto.js team での意見を受けた (2016-06-09) ことも理由のひとつだ。
browser support の過程でいくつかのことを学んだ。 Node.js の標準 library や、それに依存する npm package 、動的な require()
(2016-06-10) は browser では思った通りには動かせない。そういう当たり前のことだ。
これは eater の前提である file 単位での test という仕様の維持が難しいことを意味する。 file 単位での test を避けるために test を ES Module 化する案 (2016-06-13) を挙げた。この案は使い勝手の面で数人から否定されたため、却下した (将来的にはこの案でもつくってみたい) 。最終的には beater の instance を test 間で共有する helper 生成案に落ち着いた。
また Node.js への依存を切り離す必要性から bouzuya/beater-cli や bouzuya/beater-cli-reporter などの npm package を明確に切り離した。
現状 beater 0.4.0 では browser でなんとか動く状態にまでは持っていけた。見せかたなどに問題があるため、正直なところ、まだいまひとつだ。
今後の課題は次のとおりだ。
- 具体例の拡充
- document の整備
- beater の Error Handling の強化
- Reporter 向けの Error 情報の強化
- bouzuya/beater-html-reporter の強化
- 他の assertion / test-double / coverage / reporter との連携
関連記事:
- 2016-06-08 beater の紹介
- 2016-06-09 0.4.0 browser support 検討 (1)
- 2016-06-10 0.4.0 browser support 検討 (2)
- 2016-06-13 0.4.0 api 検討
- 2016-06-14 beater-cli の紹介
- 2016-06-15 beater-cli-reporter / beater-reporter の紹介