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 ).