Подтвердить что ты не робот

Использование Travis-CI для клиентских библиотек JavaScript?

Я не уверен использовать Travis-CI для моей клиентской библиотеки JavaScript или нет, потому что он компилируется с NodeJs на серверах Travis-CI.

Я хочу знать, что это хороший подход к использованию какой-либо непрерывной интеграции, такой как Travis-CI для клиентских библиотек или нет?

4b9b3361

Ответ 1

Да, конечно, вы должны использовать непрерывную интеграцию с библиотеками на стороне клиента.

Лично я использую PhantomJS (браузер безголового webkit), который уже установлен в Travis-CI. Я думаю, что это лучший вариант для клиентских вещей, чем 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).

Ответ 2

Я начал с ответа от Odi и перешел на gulp, чтобы заставить его работать. Если вы укажете node_js в качестве вашего языка в вашем файле travis, travis автоматически запустит

npm install

за которым следует

npm test

Первый установит любые devDependencies, указанные в файле package.json, второй будет запускать script с именем "test" также из package.json. Ниже вы найдете три файла, которые мне необходимы, чтобы на верхнем уровне моего репо для 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());
});

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"
  }
}

Ответ 3

Оди-ответ обновляется и использует 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.

Ответ 4

Я нашел этот пример. Довольно всеобъемлющий!

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

пробег:

npm install
gulp test

Он также имеет задачи для lint просмотра файлов, отчетов о охвате и т.д.