Buster.JS 0.7リリースと変更点について
はじめに
Buster.JS が久しぶりにアップデートされ、v0.7.4がリリースされました。
この記事は、Changelog — Buster.JS 0.7.4 documentation に掲載されている変更点などについて簡単にまとめたものです。
(翻訳ではないのでChangelogの方も見て下さい)
Buster.JS 0.7.4の変更点
buster-serverが ramp というモジュールになり新しくよりfastに- Windowsをサポート
assert.equalsが 再帰的なオブジェクトを扱えるようになりました- 対象が文字列じゃない時はdeepEqualが使われるようになっています。
===の一致はassert.sameを使います
assert.equalsは==ではなくなりました。(==するassert自体がない?)- config の
srcにexcludeの設定を書けるようになりました
! をパターンの前に指定する事で、そのパターンに該当するものを無視できます。
src: ['src/**/*.js', '!src/debug/*.js']
@see : Allow to specify files to be excluded in config file · Issue #292 · busterjs/buster
- 半分ぐらいのモジュールは1.x.yのstableになったよ
- GithubのBuster.JSを見るとわかりますが、それぞれがモジュールとして細かく分かれています
- デフォルトのコンソールレポーターが dots から変更
-
- Test runner Events に 設定が完了した時に発生する
suite:configurationが追加されました。- 実行時に設定に対して色々出来るトリガー
- バグバグfixfix
破壊的な変更
- $
buster testのようなサブコマンドでも実行できましたが、buster-testのような形式のみがサポートとなりました(buster-server, buster-testなどという感じで実行します) - configの
environment(env) はデフォルト値としてbrowserが設定されていましたが、明示的にbrowserかnodeを指定しないといけなくなりました assert,refute,whenなどbuster以外にもグローバル変数が存在していましたが、デフォルトではbusterのみがグローバル変数となりました。
以前のように、 assert 等をそのまま使えるようにするには、
configの testHelpers に以下のようなスクリプトを読み込ませてエイリアスを貼るといいかと思います。
module.exports["My config"] = {
environment: "browser",
sources: [...],
tests: [...],
testHelpers: ["helper.js"]
};
この時に若干ハマるのが、testHelpersなどは ../ のように上の階層を指定することは出来ません。
上の階層にあるスクリプトを指定したい場合は rootPath を上の階層にして、そこから testHelpers を指定するようにします(あまり直感的ではないので、相対パスも許容して欲しい気がする)“
rootPath: "../",
testHelpers: ["helper/helper.js"]
バグ修正
- Changelog の方を見て下さい
Object.prototypeを拡張しているテストはスキップします
ChangeLogに載ってない変更点
普通にテストケースを書く分には恐らく使うことない機能ですが、
Buster.JSを拡張するような事をするときに触る部分に変更が入っています。
buster.assertions のかわりに、buster.referee を使うようになりました(互換性のため残っていますが、getterに注意メッセージが挟んであります)
Object.defineProperty(buster, "assertions", {
get: function () {
console.log("buster.assertions is provided for backwards compatibility. Please update your code to use buster.referee");
return buster.referee;
}
});
Buster.JSには自分でTest reportersを作成して利用する事が出来ますが、reporterのデフォルトが変わったのと同時に、既存のreporterの作りも変更されています。
おわりに
Buster.JS 0.7はかなり久しぶりのリリースになったわけですが、
0.7の内容自体は結構前から少しずつコミットはされていましたが結構停滞気味でした。
先月末あたりからメインの@cjohansenさんと@augustlさんのものすごく活発になって一気に0.7のリリースに進んだ感じです。
その中で@dwittner さんがかなり頑張って、Githubのissueの管理やドキュメントの整備、package.jsonの修正など細かい所をやっていたので、今回のリリースに繋がった感じがします。
お知らせ欄
JavaScript Primerの書籍版がAmazonで購入できます。
JavaScriptに関する最新情報は週一でJSer.infoを更新しています。
GitHub Sponsorsでの支援を募集しています。