karma.conf.js 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  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'],
  20. fixWebpackSourcePaths: true
  21. },
  22. reporters: ['progress', 'kjhtml'],
  23. port: 9876,
  24. colors: true,
  25. logLevel: config.LOG_INFO,
  26. autoWatch: false,
  27. browsers: ['ChromeHeadless'],
  28. singleRun: true,
  29. restartOnFileChange: false,
  30. // Ajouts pour éviter les déconnexions ChromeHeadless
  31. captureTimeout: 60000,
  32. browserDisconnectTimeout: 60000,
  33. browserDisconnectTolerance: 3,
  34. browserNoActivityTimeout: 60000,
  35. // Custom launcher configurations ajoutées pour Jenkins CI
  36. customLaunchers: {
  37. ChromeHeadlessCustom: {
  38. base: 'ChromeHeadless',
  39. flags: [
  40. '--no-sandbox',
  41. '--disable-web-security',
  42. '--disable-features=VizDisplayCompositor',
  43. '--disable-gpu',
  44. '--disable-canvas-aa',
  45. '--disable-3d-apis',
  46. '--disable-extensions',
  47. '--disable-dev-shm-usage',
  48. '--disable-translate',
  49. '--disable-logging',
  50. '--disable-background-timer-throttling',
  51. '--disable-backgrounding-occluded-windows',
  52. '--disable-renderer-backgrounding',
  53. '--remote-debugging-port=9222'
  54. ]
  55. },
  56. ChromeHeadlessCI: {
  57. base: 'ChromeHeadless',
  58. flags: [
  59. '--no-sandbox', // CRUCIAL pour Docker/Jenkins
  60. '--disable-web-security',
  61. '--disable-features=VizDisplayCompositor',
  62. '--disable-gpu',
  63. '--disable-canvas-aa',
  64. '--disable-3d-apis',
  65. '--disable-extensions',
  66. '--disable-dev-shm-usage', // Important pour les environnements Docker
  67. '--disable-translate',
  68. '--disable-logging',
  69. '--disable-background-timer-throttling',
  70. '--disable-backgrounding-occluded-windows',
  71. '--disable-renderer-backgrounding',
  72. '--headless',
  73. '--disable-ipc-flooding-protection',
  74. '--disable-hang-monitor',
  75. '--disable-prompt-on-repost',
  76. '--disable-default-apps'
  77. ]
  78. }
  79. }
  80. });
  81. };