karma.conf.js 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. // Karma configuration file, see link for more information
  2. // https://karma-runner.github.io/1.0/config/configuration-file.html
  3. module.exports = function (config) {
  4. config.set({
  5. basePath: '',
  6. frameworks: ['jasmine', '@angular-devkit/build-angular'],
  7. plugins: [
  8. require('karma-jasmine'),
  9. require('karma-chrome-launcher'),
  10. require('karma-jasmine-html-reporter'),
  11. require('karma-coverage-istanbul-reporter'),
  12. require('@angular-devkit/build-angular/plugins/karma')
  13. ],
  14. client: {
  15. clearContext: false // leave Jasmine Spec Runner output visible in browser
  16. },
  17. coverageIstanbulReporter: {
  18. dir: require('path').join(__dirname, './coverage/fatboar-burger'),
  19. reports: ['html', 'lcovonly', 'text-summary', 'cobertura'], // Ajout du format cobertura pour Jenkins
  20. fixWebpackSourcePaths: true,
  21. // Seuils de couverture (optionnel - décommentez si vous voulez des seuils minimum)
  22. // thresholds: {
  23. // global: {
  24. // statements: 80,
  25. // branches: 75,
  26. // functions: 80,
  27. // lines: 80
  28. // }
  29. // }
  30. },
  31. reporters: ['progress', 'kjhtml', 'coverage-istanbul'], // Ajout du reporter coverage-istanbul
  32. port: 9876,
  33. colors: true,
  34. logLevel: config.LOG_INFO,
  35. autoWatch: false,
  36. browsers: ['ChromeHeadless'],
  37. singleRun: true,
  38. restartOnFileChange: false,
  39. // Ajouts pour éviter les déconnexions ChromeHeadless
  40. captureTimeout: 60000,
  41. browserDisconnectTimeout: 60000,
  42. browserDisconnectTolerance: 3,
  43. browserNoActivityTimeout: 60000,
  44. // Custom launcher configurations ajoutées pour Jenkins CI
  45. customLaunchers: {
  46. ChromeHeadlessCustom: {
  47. base: 'ChromeHeadless',
  48. flags: [
  49. '--no-sandbox',
  50. '--disable-web-security',
  51. '--disable-features=VizDisplayCompositor',
  52. '--disable-gpu',
  53. '--disable-canvas-aa',
  54. '--disable-3d-apis',
  55. '--disable-extensions',
  56. '--disable-dev-shm-usage',
  57. '--disable-translate',
  58. '--disable-logging',
  59. '--disable-background-timer-throttling',
  60. '--disable-backgrounding-occluded-windows',
  61. '--disable-renderer-backgrounding',
  62. '--remote-debugging-port=9222'
  63. ]
  64. },
  65. ChromeHeadlessCI: {
  66. base: 'ChromeHeadless',
  67. flags: [
  68. '--no-sandbox', // CRUCIAL pour Docker/Jenkins
  69. '--disable-web-security',
  70. '--disable-features=VizDisplayCompositor',
  71. '--disable-gpu',
  72. '--disable-canvas-aa',
  73. '--disable-3d-apis',
  74. '--disable-extensions',
  75. '--disable-dev-shm-usage', // Important pour les environnements Docker
  76. '--disable-translate',
  77. '--disable-logging',
  78. '--disable-background-timer-throttling',
  79. '--disable-backgrounding-occluded-windows',
  80. '--disable-renderer-backgrounding',
  81. '--headless',
  82. '--disable-ipc-flooding-protection',
  83. '--disable-hang-monitor',
  84. '--disable-prompt-on-repost',
  85. '--disable-default-apps'
  86. ]
  87. }
  88. }
  89. });
  90. };