Javascript CI編(1)-Jasmine基礎学習

2263 ワード

jasmane概要
Jasmineは、断言ライブラリが豊富に含まれているテストフレームです.今使っている最新バージョンは2.6です.
基本編
コマンドライン中の環境でjasmineを使用します.
  • インストール
  • npm install -g jasmine //        ,     cmd   ,         
    
  • 初期化プロファイル
  • jasmine init
  • によって生成されたプロファイルは、以下のとおりです.jasmine.json:
  • {
      "spec_dir": "spec", //spec     
      "spec_files": [
        "**/*[sS]pec.js"        //    ,   spec_dir
      ],
      "helpers": [
        "helpers/**/*.js"       //       ,   spec_dir
      ],
      "stopSpecOnExpectationFailure": false, //
      "random": false
    }
  • 試験を実行します.
    //          
    jasmine 
    
    //        
    jasmine appSpec.js
    
    node環境ではjasmineを使用します.
    var Jasmine = require('jasmine');
    var jasmine = new Jasmine();
    
  • ローディングプロファイル
  • //  1
    jasmine.loadConfigFile('spec/support/jasmine.json');
    
    //  2
    jasmine.loadConfig({
        spec_dir: 'spec',
        spec_files: [
            'appSpec.js',
            'requests/**/*[sS]pec.js',
            'utils/**/*[sS]pec.js'
        ],
        helpers: [
            'helpers/**/*.js'
        ]
    });
  • カスタムテスト完了イベント
  • jasmine.onComplete(function(passed) {
        if(passed) {
            console.log('All specs have passed');
        }
        else {
            console.log('At least one spec has failed');
        }
    });
  • カスタム試験報告
  • jasmine.configureDefaultReporter({
        timer: new this.jasmine.Timer(),
        print: function() {
            process.stdout.write(util.format.apply(this, arguments));
        },
        showColors: true,
        jasmineCorePath: this.jasmineCorePath
    });
    var CustomReporter = require('./myCustomReporter');
    var customReporter = new CustomReporter();
    
    jasmine.addReporter(customReporter);
  • 試験を実行します.
    jasmine.execute();
    jasmine.execute(['fooSpec.js'], 'a spec name');
  • 簡単かつ完全な試験事例
  • var Jasmine = require('jasmine');
    var jasmine = new Jasmine();
    
    jasmine.loadConfigFile('spec/support/jasmine.json');
    jasmine.configureDefaultReporter({
        showColors: false
    });
    jasmine.execute();