web-dev-qa-db-ja.com

クライアント側のJavaScriptライブラリにTravis-CIを使用していますか?

クライアント側のJavaScriptライブラリにTravis-CIを使用するかどうかはわかりません。これは、Travis-CIサーバー上のNodeJでコンパイルされるためです。

これは、クライアント側ライブラリ用のTravis-CIなどのある種の継続的インテグレーションを使用するための優れたアプローチですか?

43

はい、もちろん、クライアント側ライブラリとの継続的インテグレーションを使用する必要があります。

私は個人的に PhantomJS(ヘッドレスWebkitブラウザ) を使用しています。これは Travis-CIにすでにインストールされています です。これは、NodeJよりもクライアント側のものに適したオプションだと思います。

Grunt を使用すると、さらに使いやすくなります。必要なのは、単純なGruntfile.jsファイル、ブラウザーで実行されるテスト(私は QUnit を使用)、および単純な.travis.yml

Gruntfile.js

module.exports = function(grunt) {
    // Project configuration.
    grunt.initConfig({
        qunit: {
            files: ['test/index.html']
        }
    });

    // Load plugin
    grunt.loadNpmTasks('grunt-contrib-qunit');

    // Task to run tests
    grunt.registerTask('test', 'qunit');
};

.travis.yml

before_script:
  - Sudo npm install -g grunt

script: grunt test --verbose --force

私のプロジェクトの1つで 実際の動作を参照 できます( GitHubのソース )。

38
Odi

私はOdiからの回答から始めて、それを機能させるためにgulpに移りました。 travisファイルで言語としてnode_jsを指定すると、travisが自動的に実行されます

npm install

に続く

npm test

1つ目はpackage.jsonファイルで指定されたdevDependenciesをインストールし、2つ目は同じくpackage.jsonから「test」という名前のスクリプトを実行します。以下に、travisが単一のqunitスイートを実行するためにリポジトリのトップレベルに必要な3つのファイルを示します。

.travis.yml

language: node_js
node_js:
  - "0.10"

gulpfile.js

var gulp = require('gulp'),
    qunit = require('gulp-qunit');

gulp.task('default', function() {
    return gulp.src('./tests/unit/unittests_nupic-js.html')
        .pipe(qunit());
});

package.json

{
  "name": "nupic-js",
  "version": "0.0.1",
  "description": "JavaScript port of NuPIC",
  "license": "GPL-3.0",
  "repository": "iandanforth/nupic-js",
  "bugs": { "url" : "http://github.com/iandanforth/nupic-js/issues"
  },
  "author": {
    "name": "Ian Danforth",
    "email": "[email protected]"
  },
  "engines": {
    "node": ">=0.10.0"
  },
  "scripts": {
    "test": "gulp"
  },
  "keywords": [
    "numenta",
    "nupic",
    "machine learning"
  ],
  "devDependencies": {
    "gulp-qunit": "~0.2.1",
    "gulp-util": "~2.2.14",
    "gulp": "~3.5.1"
  }
}
26
Ian Danforth

Odiの回答が更新され、npmを使用して依存関係が解決されました。

。travis.yml

language: node_js
node_js:
  - "6"

。Gruntfile.js

module.exports = function(grunt) {
  // Project configuration.
  grunt.initConfig({
    qunit: {
      files: ['./test/qunit.html']
    }
  });

  // Load plugin
  grunt.loadNpmTasks('grunt-contrib-qunit');

  // Task to run tests
  grunt.registerTask('test', 'qunit');
};

Package.json(関連パーツ)

  "devDependencies": {
    "grunt": "^1.0.1",
    "grunt-contrib-qunit": "^1.3.0"
  },
  "scripts": {
    "test": "grunt test"
  }

npm installを実行してからnpm testを実行することにより、ローカルで構成を試すことができます。

3
bersling

私はこの例を見つけました。かなり包括的です!

https://github.com/jonkemp/gulp-qunit

実行:

npm install
gulp test

また、lintファイルの監視、カバレッジレポートなどのタスクもあります。

1
Rimian