Jorge Luis Silva Medina
EstudianteCesar Elías Armendariz Ruano
EstudianteDaniel Meza
EstudianteDaniel Meza
EstudianteDaniel Meza
EstudianteVictor Alfredo Matzar Say
EstudianteANDRES FELIPE CANO PIEDRAHITA
EstudianteFranklin Gil
EstudianteElcira Ibarra
EstudianteLuis Jose Marquez Gonzalez
Estudianteden velez
EstudianteDiego Toro Cárdenas
EstudiantePara los que lo ven en el 2023, les recomiendo que revisen la versión de node y que revisen la version de los comandos de CI de github.
name: CI for Angular on: push jobs: unit-test: runs-on: ubuntu-latest steps: - name: Cone uses: actions/checkout@v3 - name: Node Setup uses: actions/setup-node@v3 with: node-version: 16.x - name: Install dependencies run: npm ci - name: Run tests run: npm run test -- --no-watch --code-coverage --browsers=ChromeHeadlessCI
Vamos a agregar todo el proceso de integración continua para correr pruebas desde un servidor que en este caso es el de Github Actions. Es de gran utilidad para poder hacer test de todos los test en cada commit que se haga trabajo grupal.
Configura el setap para cualquier framework de prueba continua en testingCI
¿Alguien tuvo éxito?
Aquí mi configuración:
ci.yml
name: CI for Angular on: push jobs: unit-test: runs-on: ubuntu-latest steps: - name: Clone uses: actions/checkout@v2 - name: Node Setup uses: actions/setup-node@v2 with: node-version: 14.x - name: Install run: npm ci - name: run tests run: npm run test -- --no-watch --code-coverage --browsers=ChromeHeadlessCI
karma.conf.js
// Karma configuration file, see link for more information // https://karma-runner.github.io/1.0/config/configuration-file.html module.exports = function (config) { config.set({ basePath: '', frameworks: ['jasmine', '@angular-devkit/build-angular'], plugins: [ require('karma-jasmine'), require('karma-chrome-launcher'), require('karma-jasmine-html-reporter'), require('karma-coverage'), require('@angular-devkit/build-angular/plugins/karma'), require('karma-mocha-reporter') ], client: { jasmine: { // you can add configuration options for Jasmine here // the possible options are listed at https://jasmine.github.io/api/edge/Configuration.html // for example, you can disable the random execution with `random: false` // or set a specific seed with `seed: 4321` }, clearContext: false // leave Jasmine Spec Runner output visible in browser }, jasmineHtmlReporter: { suppressAll: true // removes the duplicated traces }, coverageReporter: { dir: require('path').join(__dirname, './coverage/ng-testing-services'), subdir: '.', reporters: [ { type: 'html' }, { type: 'text-summary' } ], check: { global: { statements: 30, branches: 30, funtions: 30, lines: 30 } } }, reporters: ['mocha'], port: 9876, colors: true, logLevel: config.LOG_INFO, autoWatch: true, browsers: ['ChromeHeadless'], customLaunchers: { ChromeHeadlessCI: { base: 'ChromeHeadless', flags: ['--no-sandbox'] } }, singleRun: false, restartOnFileChange: true }); };
Ya corrió. El detalle ahora, es que se queda colgado en el test...
Por mi parte, lo corrí con
run: npx ng test --no-watch --code-coverage --browsers=ChromeHeadlessCI
npm run test, no me funcionó :(
muchas gracias
Hay un curso de Github Actions?
Si en algún momento se queda colgado, es porque el ng run test tiene el watcher por defecto. He agregado un test:ci en el package.json, y es el comando a ejecutar en el ci.yml
"scripts": { "ng": "ng", "start": "ng serve", "build": "ng build", "watch": "ng build --watch --configuration development", "test": "ng test --watch --browsers ChromeHeadless", "test:ci": "ng test --no-watch --code-coverage --browsers=ChromeHeadlessCI", "test:coverage": "ng test --watch --browsers ChromeHeadless --code-coverage", "serve:ssr:angular-unit-test": "node dist/angular-unit-test/server/server.mjs" },
name: CI for Angular on: push jobs: unit-test: runs-on: ubuntu-latest steps: - name: Clone uses: actions/checkout@v2 - name: Node Setup uses: actions/setup-node@v4.0.2 with: node-version: '20.x' - name: Install Dependencies run: npm ci - name: Run Tests run: npm run test:ci
husky, libreria para comprobar que todo sea correcto en el local antes de hacer push,
CI = continuous integration
For to learn more, please click My contribution