LoginSignup
8
8

More than 5 years have passed since last update.

6to5 + mocha + power-assert

Last updated at Posted at 2015-02-02

6to5 をそのまま mocha + power-assert を使うと、power-assert が上手く動かない問題をどうにかする。

使えるようになったサンプルプロジェクトはこれ:

こうなるまでを順番に書いていく。

必要なパッケージをインストール

上述したパッケージに加えて、@azu さん製の azu/espower-6to5 を使う。

$ npm install --save-dev mocha power-assert espower-6to5

6to5 は espower-6to5 経由でインストールしたものを使うことになるので、CLI で mocha を走らせる分には不要。

loader を書く

espower-6to5 を使って mocha から呼ばれるローダーの設定をする:

test/loader.js
require('espower-6to5')({
  cwd: process.cwd(),
  pattern: '{.,{src,test}/**}/*.js', // 6to5 を通すファイルのパターン
});

espower-6to5 についてくる guess.js は、test/ ディレクトリ以下の JavaScript しか 6to5 を通してくれず、プロジェクトルートにある JavaScript や test/ 以外のディレクトリの JavaScript は 6to5 を使わずそのまま実行しようとする。なので pettern を自分の都合に合わせて書く必要がある。

テストを書いてテスト実行

書いた loader.js を、mocha に与えて実行すればできる:

$ edit src/foo.js
$ edit test/foo_test.js

$ node_modules/.bin/mocha --require test/loader test/**/*_test.js

おわり。

browserify と組み合わせるなら http://havelog.ayumusato.com/develop/javascript/e640-kameita_es6_project_skeleton.html Node だけなら https://github.com/azu/espower-6to5 あたりが参考になると思います。あとは Grunt や Gulp のプラグインで自前でつなぐ、とかですかね。
https://twitter.com/t_wada/status/561048591838351362

@t_wada ありがとうございました。

疑問

npm って依存パッケージバージョンと孫依存パッケージバージョンを一元管理できないんだろうか。今回は大丈夫だけど、テスト時は espower-6to5 の依存している 6to5 のバージョンを使うし、 アプリケーション実行時はまた別の 6to5 を使うハメになるのつらい。

8
8
5

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
8