Korzystanie z Travis-CI dla bibliotek JavaScript po stronie klienta?

Nie jestem pewien, czy używam Travis-CI dla mojej biblioteki JavaScript po stronie klienta, czy nie, ponieważ kompiluje się z NodeJs na serwerach Travis-CI.

Chcę wiedzieć, czy jest to dobre podejście do korzystania z pewnego rodzaju ciągłej integracji , takiej jak Travis-CI dla bibliotek po stronie klienta, czy nie?

Author: Afshin Mehrabani, 2012-11-16

4 answers

Tak, oczywiście powinieneś używać ciągłej integracji z bibliotekami po stronie klienta.

Osobiście używam PhantomJS (headless webkit browser)który jest już zainstalowany w Travis-CI. Myślę, że jest to lepsza opcja dla rzeczy po stronie klienta niż NodeJs.

Jeśli używasz Grunt , staje się jeszcze łatwiejszy w użyciu, wszystko, czego potrzebujesz, to prosty Gruntfile.plik js, testy uruchamiane w przeglądarce (używam QUnit ), oraz prosty .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

Możesz zobaczyć go w akcji w jednym z moich projektów (źródło na Githubie ).

 37
Author: Odi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-02-11 11:43:30

Zacząłem od odpowiedzi Odi i przeniosłem się do gulp, aby go uruchomić. Jeśli podasz node_js jako swój język w pliku travis, travis automatycznie uruchomi

npm install

Po którym następuje

npm test

Pierwszy zainstaluje dowolne devDependencies określone w pakiecie.plik json, drugi uruchomi skrypt o nazwie "test" również z pakietu.json. Poniżej znajdziesz trzy pliki, które musiałem mieć na najwyższym poziomie mojego repo, aby travis mógł uruchomić pojedynczy qunit Apartament.

.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());
});

Pakiet.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"
  }
}
 24
Author: Ian Danforth,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-03-05 16:28:05

Odpowiedź Odi zaktualizowana i użycie npm do rozwiązywania zależności:

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

Paczka.json (odpowiednie części)

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

Możesz spróbować konfiguracji lokalnie uruchamiając npm install, a następnie npm test.

 2
Author: bersling,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-02-25 16:25:48

Znalazłem ten przykład. Dość obszerny!

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

Run:

npm install
gulp test

Ma również zadania do lint oglądania plików, raportów pokrycia i innych.

 1
Author: Rimian,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-09-06 03:20:17