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

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

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


person Afshin Mehrabani    schedule 16.11.2012    source источник


Ответы (4)


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

Я лично использую PhantomJS (безголовый веб-браузер), который уже установлен в 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).

person Odi    schedule 20.11.2012
comment
Разве упоминание grunt как devDependency в файле package.json не устранит необходимость в части before_script? - person Andreas Köberle; 10.12.2012
comment
Это правильно, если вы используете NPM для разрешения зависимостей. В моем случае у меня есть проект PHP, поэтому я должен указать эту зависимость в before_script - person Odi; 10.12.2012
comment
увидеть это в действии ссылка мертва. - person gbmhunter; 17.02.2014
comment
@gbmhunter, ты прав, я только что исправил. Спасибо за отчет! - person Odi; 17.02.2014
comment
увидеть это в действии ссылка снова мертва. - person andig; 04.05.2014
comment
Я считаю, что вам также нужно grunt.loadNpmTasks('grunt-contrib-qunit');, чтобы это работало. Я вижу это в Gruntfile.js для репозитория, который вы Справка. - person danvk; 17.11.2014
comment
@danvk Я думаю, ты прав, я добавил это в свой пример - person Odi; 18.11.2014
comment
grunt.js был изменен на Gruntfile.js в 2013 году. См. github.com/gruntjs/grunt/issues/650 - person Paul; 10.02.2016

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

npm install

с последующим

npm test

Первый установит любые devDependencies, указанные в файле package.json, второй запустит скрипт с именем «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());
});

пакет.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"
  }
}
person Ian Danforth    schedule 05.03.2014
comment
Чап - это было именно то, что мне было нужно. Огромное спасибо! - person John Reilly; 30.06.2015

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

person bersling    schedule 25.02.2017

Я нашел этот пример. Вполне исчерпывающе!

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

бежать:

npm install
gulp test

В нем также есть задачи для lint просмотра файлов, отчетов о покрытии и многого другого.

person Rimian    schedule 06.09.2016