43

我不确定是否将 Travis-CI 用于我的客户端 JavaScript 库,因为它在 Travis-CI 服务器上与 NodeJs 一起编译。

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

4

4 回答 4

37

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

我个人使用已经安装在 Travis-CI 中的PhantomJS (无头 webkit 浏览器)。我认为这对于客户端的东西来说是比 NodeJs 更好的选择。

如果你使用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

您可以在我的一个项目中看到它的实际效果( GitHub 上的源代码)。

于 2012-11-20T12:05:02.710 回答
26

我从 Odi 的回答开始,然后转到 gulp 让它工作。如果您在 travis 文件中指定 node_js 作为您的语言,travis 将自动运行

npm install

其次是

npm test

第一个将安装 package.json 文件中指定的任何 devDependencies,第二个将从 package.json 运行名为“test”的脚本。下面你会发现我需要在我的 repo 顶层拥有的三个文件,以便 travis 运行单个 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());
});

包.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"
  }
}
于 2014-03-05T16:28:05.003 回答
3

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

于 2017-02-25T16:25:48.617 回答
1

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

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

跑:

npm install
gulp test

它还具有lint查看文件、覆盖报告等的任务。

于 2016-09-06T03:10:43.003 回答