Gruntでjasmineを動かしてrequireJSでモジュール化されたファイルのテストを行うときのメモ。
使用したgruntのプラグイン
grunt-contrib-jasmineはこれ1つでjasmineでテストする環境が整う。PhantomJSとかもバンドルされているので個別にPhantomJSをインストールしなくてもいい。
grunt-template-jasmine-requirejsはgrunt-contrib-jasmineでrequireJSでモジュール化されたファイルをテストするためのテンプレート。
以下はGruntのタスク。
jasmine: {
// プロパティ名はテストケース名
sample: {
// このテストケースでテストするファイルの指定
// 一気に指定するとエラーが大量に出るのではじめは1ファイルずつのほうがいいかもしれない
src: 'src/**/*.js',
options: {
// テストケース
specs: 'spec/*Spec.js',
// ヘルパー
helpers: 'spec/*Helper.js',
// SpecRunnerを残すかどうかの設定
keepRunner: true,
//テスト結果のxmlの保存場所
junit: {
path: 'jasmine-test'
},
//requireJSのためのテンプレート
template: require('grunt-template-jasmine-requirejs'),
templateOptions: {
//設定が書かれているファイルを指定
requireConfigFile: 'src/config.js',
//上書きしたいrequirejsの設定があればここに書く
requireConfig: {
baseUrl: 'src'
}
}
}
}
}
設定できればJenkinsなんかでテスト結果がみれて便利だと思う。Jenkins使ってなければGruntのwatchタスクでファイルを保存するたびに実行してあげるといいかも。
テストケースはrequirejsを使ってこう書く。
define([必要なモジュールを読み込む], function(必要なモジュール) {
describe("テストケース", function() {
it("1", function (){
・・・
});
it("2", function (){
・・・
});
});
});
specを書くところですこしはまるかもしれない。