2014/02/02

gulpでmochaのテストをできるようにする

前回の記事「ビルドシステムgulpをCoffeeScriptで使ってみる」ではコンパイル、ファイル監視してコンパイル、クリーンの3つのタスクを作成しました。

今回は、さらにタスクを追加してmochaでテストができるようにしてみます。

gulp-mochaなどの追加

gulpでmochaを使うにはgulp-mochaを入れるだけでよいです。

$ npm install --save-dev gulp-mocha should

テストをBDDスタイルで書きたいので、ついでにshouldも入れています。

テストタスクの追加

まず、gulpfileでモジュールを宣言します。

# test tools
mocha = require 'gulp-mocha'

そして、テストタスクを追加するだけです。

# test
gulp.task 'test', ['script'], ->
   gulp.src ['lib/*.js', 'test/*.coffee']
     .pipe mocha {reporter: 'spec'}

テストの追加

試しにテストを書いてみます。

test/sample.unit.coffeeは次のようなテストです。

require 'should'

foo = require('../lib/sample');

describe 'foo()', ->
    it 'は引数ありなら正負を逆にした値を返す', ->
        foo(9).should.equal -9
        foo(-3).should.equal 3
    it 'は0なら0を返す', ->
        foo(0).should.equal 0
    it 'は引数なしなら0を返す', ->
        foo().should.equal 0

それに対するsrc/sample.lsは次のようにしました。

!function foo a = 0
    return -a

if module? and module.exports?
   module.exports = foo

これで実行すると、次のようにテストが実行されました。

$ gulp test                 
[gulp] Using file /Users/safx/src/mantle-gen/gulpfile.js
[gulp] Working directory changed to /Users/safx/src/mantle-gen
[gulp] Running 'script'...
[gulp] Finished 'script' in 23 ms
[gulp] Running 'test'...


  foo()
    ✓ は引数ありなら正負を逆にした値を返す 
    ✓ は0なら0を返す 
    ✓ は引数なしなら0を返す 


  3 passing (3ms)

[gulp] Finished 'test' in 40 ms

おわりに

gulpfileにタスクを追加してmochaでテストができるようにしました。

関連リンク

0 件のコメント:

コメントを投稿

注: コメントを投稿できるのは、このブログのメンバーだけです。