mochaのonlyを検知する。
今回の記事もmochaです。
mochaのonlyメソッドは付与されているテストのみ実行する事が出来るので
特定のテストの動作確認をしたい。って時に活用できるかと思います。
ただ、コミット時onlyを削除し忘れて
本来なら失敗するテストも成功してしまい気付かないケースがあります。
そうなるとテストがSkipされてテストで気付けない⇒よって手動実行みたいなケースも想像できます。
となると本末転倒です。。
そこでtest実行時、テスト対象のファイルから.onlyが付与されているものを
エラーとして返してくれるpackageをインストールしました。
dot-only-hunter
GitHub - dasilvacontin/dot-only-hunter: Hunt down `.only`s before it's too late.
まずはインストール。本番環境では不要なのでdevのみにインストールします。
npm install --save-dev dot-only-hunter
その後、package.json内のscriptsの中に下記を追加します。
"dot-only-hunter":"dot-only-hunter test/**/*.js", "test": "dot-only-hunter && NODE_ENV=test mocha --recursive --compilers js:babel-register test/*",
test内で&&で囲み先にdot-only-hunterが実行するようにします。
これでdot-only-hunterが先にtestディレクリ内の.onlyを検知してくれて
onlyが付与されている状態であればテストをしないで失敗します。
skipされるのにテストを全体で実行しても意味がないので。。
対象のソースコード
describe.only('clacTest', () => { it('testCase1',() => { testRunAndVerifycation(100,108); }); it('testCase2', () => { testRunAndVerifycation(200,216); }); });
実行してみます。
clac.js
きちんと.onlyを検知できているみたいです。
では、.onlyを外してみます。
ちゃんとdot-only-hunterが成功になり、その後のテストコマンドを実行しているのが分かります。
また、今回dot-only-hunterを適用するのはnpm testコマンドのみで
前回の記事でお伝えしたtest-debugのコマンドには適用しません。
describeにonlyを付与した状態でtest-debugを叩きながらテストコードを作成し、
終了後にonlyを削除する。もし忘れてしまったらnpm testで検知してくれるという運用を考えています。