クライアント側のJavaScriptライブラリにTravis-CIを使用するかどうかはわかりません。これは、Travis-CIサーバー上のNodeJでコンパイルされるためです。
これは、クライアント側ライブラリ用のTravis-CIなどのある種の継続的インテグレーションを使用するための優れたアプローチですか?
はい、もちろん、クライアント側ライブラリとの継続的インテグレーションを使用する必要があります。
私は個人的に 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のソース )。
私は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"
}
}
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
を実行することにより、ローカルで構成を試すことができます。
私はこの例を見つけました。かなり包括的です!
https://github.com/jonkemp/gulp-qunit
実行:
npm install
gulp test
また、lint
ファイルの監視、カバレッジレポートなどのタスクもあります。