くうと徒然なるままに

モバイルアプリを作りながらバックエンドも作っています。

TypeScript で コードの変更を検知して自動で Compile -> Unit Test までを実行する

TypeScript を書いてて Live Unit Testing みたいなのを やってみたいですよね。

Live Unit Testing とは、コードの変更を検知して即時に Unit Test を実行するものです。

さて、やっていきましょう

環境構築

  • typescript
  • mocha
    (- chai)

適当に TypeScript とか mocha とか tsc とかは使える前提でいきます。

tsc -w とかも試してみましたが、微妙にうまく動かないっぽいんで違うの使います。

npm install mocha @types/mocha 
npm install typescript watch -g

理想像

npm run-script co-build としたら継続的にファイル変更を検知してよしなにしてくれます。
npm run-script co-test としたら継続的に単体テストを実行して結果を表示してくれるようにします。

問題点

npm のパッケージの watch を使っているんだけど、ファイルサイズ制限あったりするので大きなプロジェクトでは辛そう(私は小規模なものしか書いてない

やり方

package.json 芸人するだけですん

わざわざ build と test を分けてるのは、純粋に一緒になってるとごちゃごちゃしてみにくいんですよね。
あと、Buildが動いてないのかな〜?とか気づきにくい

Scripts 配下に置く
    "co-build": "watch 'tsc' src/**/",
    "co-test": "mocha --recursive lib/**/*.js --watch 'lib/**/*.js' ",