tutorial soljson smart remix org optimize online false español curso 59dbf8f1 javascript continuous-integration travis-ci

soljson - ¿Utilizando Travis-CI para las bibliotecas de JavaScript del lado del cliente?



smart contracts ethereum (4)

Comencé con la respuesta de Odi y me moví a trago para que funcionara. Si especifica node_js como su idioma en su archivo travis, travis se ejecutará automáticamente

npm install

seguido por

npm test

El primero instalará las devDependencies especificadas en un archivo package.json, el segundo ejecutará el script llamado "test" también desde package.json. A continuación, encontrará los tres archivos que necesitaba tener en el nivel superior de mi repositorio para que travis pueda ejecutar una única suite 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()); });

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

No estoy seguro de usar Travis-CI para mi biblioteca de JavaScript del lado del cliente o no, porque se compila con NodeJs en los servidores de Travis-CI.

Quiero saber si este es un buen enfoque para utilizar algún tipo de integración continua , como Travis-CI, para las bibliotecas del lado del cliente o no.


Encontré este ejemplo. Muy comprensivo!

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

correr:

npm install gulp test

También tiene tareas para ver archivos de lint , informes de cobertura y más.


La respuesta de Odi se actualizó y usó npm para resolver dependencias:

.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 (partes relevantes)

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

Puede probar la configuración localmente ejecutando npm install y luego npm test .


Sí, por supuesto, debe utilizar la integración continua con las bibliotecas del lado del cliente.

Personalmente uso PhantomJS (navegador webkit sin cabeza) que ya está instalado en Travis-CI . Creo que esta es la mejor opción para las cosas del lado del cliente que NodeJs.

Si usa Grunt , se vuelve aún más fácil de usar, todo lo que necesita es un simple archivo Gruntfile.js, sus pruebas que se ejecutan en el navegador (uso QUnit ) y un simple .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

Puedes verlo en acción en uno de mis proyectos ( fuente en GitHub ).