将Travis-CI用于客户端JavaScript库?

时间:2012-11-16 07:30:11

标签: javascript continuous-integration travis-ci

我不确定是否将Travis-CI用于我的客户端JavaScript库,因为它在Travis-CI服务器上使用NodeJ进行编译。

我想知道这对于客户端库使用某种持续集成(如Travis-CI)是否是一种好方法?

4 个答案:

答案 0 :(得分:38)

是的,您当然应该使用与客户端库的持续集成。

我个人使用的PhantomJS (headless webkit browser)already installed in 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

您可以在我的一个项目see it in action)上source on GitHub

答案 1 :(得分:25)

我从Odi的答案开始,然后转向gulp让它运转起来。如果在travis文件中指定node_js作为语言,则travis将自动运行

npm install

接着是

npm test

第一个将安装package.json文件中指定的任何devDependencies,第二个将从package.json运行名为“test”的脚本。下面你将找到我需要在我的仓库顶层运行一个qunit套件的三个文件。

.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": "iandanforth@gmail.com"
  },
  "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"
  }
}

答案 2 :(得分:3)

Odi的答案已更新并使用npm解决依赖关系:

<强> .travis.yml

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');
};

<强> .Gruntfile.js

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

Package.json (相关部分)

npm install

您可以通过运行npm test然后{{1}}。

在本地尝试配置

答案 3 :(得分:1)

我找到了这个例子。相当全面!

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

运行:

npm install
gulp test

还有lint观看文件,报道报告等任务。