2014年08月27日

jasmine-jqueryとkarmaでの自動テスト

jasmineのfixture(テスト用のHTMLをロードする奴)であるjasmine-jquerykarmaを利用しようとする色々とハマったのでメモ。

まず、karmaではconfigのfilesに指定したファイルしか読み込みが出来ない。そこでkarma.conf.jsのfilesにfixturesで読み込むURLを指定しなくてはいけない。オプションでincluded:falseを指定しないと初回で読み込まれてしまうので注意。

module.exports = function(config) {
config.set({
(中略)
files: [
'module/lib/jquery-1.11.1.js',
'module/lib/underscore-min.js',
'module/lib/backbone-min.js',
(中略)
{ pattern: 'fixtures/*.inc', included: false }
],
(中略)
});
}



また、filesで指定したファイルはbaseディレクトリ配下に読み込まれるので以下のようにKarma経由の場合(ポート番号9876)とブラウザ経由の場合でfixturesPathパスを変更する必要がある。

if(location.port==9876){
jasmine.getFixtures().fixturesPath = 'base/fixtures/';
}else{
jasmine.getFixtures().fixturesPath = '../fixtures/';
}


一番ハマったのは以下のコマンドでインストールした「karma-jasmine」のバージョンが古かったこと。jasmine-jqueryの組み合わせるとclearTimeoutがundefinedとか訳の分からないエラーが出てしまった

npm install karma-jasmine --save-dev


以下のコマンドじゃないと2系のkarma-jasmineはインストール出来ない

npm install karma-jasmine@2_0 --save-dev
posted by ねこまんま at 11:52 | Comment(0) | TrackBack(0) | test | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

※ブログオーナーが承認したコメントのみ表示されます。

この記事へのトラックバック