LoginSignup
44
44

More than 5 years have passed since last update.

grunt+jasmineな環境作成手順

Last updated at Posted at 2013-05-04

自分用の覚書。環境はMacです。

node.jsのインストール

http://nodejs.org/
公式サイトからnode.jsのインストーラをダウンロードしてインストール。

Gruntのインストール

の前に

npm -v

を実行して、npmが使用できるようになっていることを確認。
コマンドを実行してバージョンが表示されたら、以下のコマンドをスーパーユーザーで実行

sudo npm install -g grunt-cli

package.jsonの準備

packeage.jsonをgruntを使用するフォルダ直下に作成する。
ファイルの内容は以下。著作者情報やバージョン情報も設定できるけども、割愛します。

package.json
{
  "name": "practis"
}

作成したら、bashでgruntを使用するフォルダ(以下、当該フォルダ)に移動して以下のコマンドを実行。
当該フォルダにgruntをインストール(install grunt)し、package.jsonに以下のインストール内応を記載(--save-dev)する

sudo npm install grunt --save-dev

当該フォルダ以下にnode_modulesフォルダが作成され、package.jsonにはdevDependenciesが追記され、以下の様な状態になる

package.json
{
  "name": "practis",
  "devDependencies": {
    "grunt": "~0.4.1"
  }
}

続いて、使用するプラグインをインストール。
ファイル変更を監視するためのwatch

sudo npm install grunt-contrib-watch --save-dev

テスティングツールのjasmine

sudo npm install grunt-contrib-jasmine --save-dev

package.jsonは以下のようになっているはず

package.json
{
  "name": "practis",
  "devDependencies": {
    "grunt": "~0.4.1",
    "grunt-contrib-watch": "~0.4.0",
    "grunt-contrib-jasmine": "~0.4.2"
  }
}

ここまで入ったら、開発する環境を用意。
フォルダ直下にGruntfile.jsを作成。
内容と意味合いについては以下

Gruntfile.js
module.exports = function(grunt) {
  grunt.initConfig({
    watch: {
      // src/jsフォルダ以下のjs拡張子ファイルを対象に監視
      files: ['src/js/*.js'],
      // 変更があったらタスクjasmineを実行
      tasks: ['jasmine']
    },
    jasmine: {
        // プロパティ名はテストケース名
        sample: {
          // このテストケースでテストするファイルの指定
          src: 'src/js/sample.js',
          options: {
            // テストケース
            specs: 'spec/*Spec.js',
            // ヘルパー
            helpers: 'spec/*Helper.js'
          }
        }
    }
  });
  // gruntでjasmineを使う
  grunt.loadNpmTasks('grunt-contrib-jasmine');
  // 変更したファイルを監視するためのwatch
  grunt.loadNpmTasks('grunt-contrib-watch');
};

フォルダ内の構成を以下のようにする

Gruntfile.js
package.json
node_modules(自動作成されたフォルダ)
spec(任意作成したフォルダ・テストケースのjsを入れる)
src(任意作成したフォルダ・開発物を入れる)
└js(jsを入れる)

テストケースをspecフォルダ以下に作成

Gruntfile.jsに定義した名前に沿うようにファイル名をつける

sampleSpec.js
describe("test case name", function() {
    var foo;
     beforeEach(function() {
         foo = sample.test('hallo');
     });

     it("should say", function (){
        var say = foo.say('hallo');
        expect(say).toEqual("say hallo");
     });
});

テストされる対象のjsをsrc/js以下に作成

Gruntfile.jsで指定したテストケースでテストされる対象として作成。

sample.js
var sample = {}; 

sample.test = function(param){
  return {say : function(){return 'say ' + param}}
}

ここまで準備ができたら、jsファイルの変更の監視を開始する

grunt watch

これで、src/js以下のsample.jsファイルが変更された時点でjasmineのテストが走る

Completed in 2.249s at Sat May 04 2013 16:33:33 GMT+0900 (JST) - Waiting...OK
>> File "src/js/sample.js" changed.
Running "jasmine:test" (jasmine) task
Testing jasmine specs via phantom
.
1 spec in 0.002s.
>> 0 failures

Done, without errors.

上記はテストが成功した場合。

取り敢えず、これで動作することを確認。
jasmineの使い方については、追い追い調べようと思います。

補足・動作させるのにphantomjsを使用していますが
プラグイン内に含まれているのでインストールは不要かも知れません。
もともとphamtomjsがインストールされた環境で実行したので確かめてませんが、もし動作しなければphantomjsをインストールしてパスを通せばうまくいくとおもいます。

44
44
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
44
44