CoffeeColliderの開発ツールについて書きます
ブラウザ音響プログラミング言語 CoffeeCollider の開発ツールについて書きます。これが分かれば誰でも開発に参加できるという按配です。PR待ってますということです。
準備
GitHub で fork して npm で依存モジュールをインストールすれば準備万端です。
git clone git@github.com:mohayonao/CoffeeCollider.git cd CoffeeCollider npm install .
Grunt
基本的に全部 Grunt でやっています。テストもカバレッジレポートも全部 grunt 経由。使っているツールはだいたいコマンドラインインターフェースを持っているのだけど、各タスクごとに前準備みたいなのがあって、それをはさむために grunt を使っています。
テスト
# 全部テスト grunt test # 特定のテストのみ実行 grunt test:server
単体テストしかしていなくて、ちょっとどうにかしたいと思っています。あと、音のテストの書き方が分からなくて悩んでいます。今は何パターンかの正常値を入力して出力に NaN
がなければOKという雑なかんじで、サイン波のモジュールがホワイトノイズを出していてもテストは通ってしまう。どうしたらよいんでしょうか?
カバレッジレポート
Istanbul を使っています。
# 全部レポート grunt cover # 特定のレポートのみ grunt cover:client/compiler
ビルド
dryice を使っています。これは AMD で書いたコードを結合したり、その他にヘッダーやフッターをつけたり、細かい置換を行ったりできる便利モジュールです。
# テストしてテストバージョンをビルド grunt build # テストせずにテストバージョンをビルド grunt build:force # 完成版をビルド grunt build:all
watch
grunt-este-watch を使っています。
grunt
watch してやっていることは以下のとおりです
127.0.0.1:3000
でデモページ表示127.0.0.1:3000/extras/edge/
でテスト版デモページを表示127.0.0.1:3000/coverage/lcov-report
でカバレッジレポートを表示*.js
を編集 → 関連するファイルのテストをしてテスト版のビルド*_test.js
を編集 → そのテストを実行 (ビルドはしない)
Travis CI
やっているのはテストの実行をカバレッジレポートの出力。これも grunt 経由でやっている。一行目は node.js で音を出すためのモジュールをインストールしない(Travisだとエラーになるため)の設定です。
env: npm_config_mpg123_backend=dummy language: node_js node_js: - 0.10 before_script: - npm install -g grunt-cli
https://travis-ci.org/mohayonao/CoffeeCollider
Coveralls
呼び出し方がいい加減な感じで、package.json に無理やり書いた。
"scripts": { "test": "grunt travis --verbose && cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js && rm -rf ./coverage" }
https://coveralls.io/r/mohayonao/CoffeeCollider
David
あとはREADMEにバッジつけたいがために David 使ってる。
https://david-dm.org/mohayonao/CoffeeCollider
書いている途中に飽きて雑な感じになったけど、だいたいそんな感じです。