karma-cov.conf.js 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. var path = require('path');
  2. var webpack = require('./webpack.config');
  3. webpack.module.rules.push(
  4. // instrument only testing sources with Istanbul
  5. {
  6. test: /\.js$/,
  7. use: { loader: 'istanbul-instrumenter-loader' },
  8. include: process.env.KARMA_COVER_FOLDER
  9. }
  10. );
  11. module.exports = function (config) {
  12. config.set({
  13. basePath: '.',
  14. frameworks: ['mocha'],
  15. reporters: ['mocha', 'coverage-istanbul'],
  16. client: {
  17. mocha: {
  18. timeout : 10000, // 10 seconds - upped from 2 seconds
  19. retries: 3 // Allow for slow server on CI.
  20. }
  21. },
  22. files: [
  23. {pattern: path.resolve('./build/injector.js'), watched: false},
  24. {pattern: process.env.KARMA_FILE_PATTERN, watched: false}
  25. ],
  26. customLaunchers: {
  27. ChromeHeadlessNoSandbox: {
  28. base: 'ChromeHeadless',
  29. flags: ['--no-sandbox']
  30. }
  31. },
  32. preprocessors: {
  33. 'build/injector.js': ['webpack'],
  34. 'src/*.spec.ts': ['webpack', 'sourcemap']
  35. },
  36. mime: {
  37. 'text/x-typescript': ['ts','tsx']
  38. },
  39. webpack: webpack,
  40. webpackMiddleware: {
  41. noInfo: true,
  42. stats: 'errors-only'
  43. },
  44. coverageIstanbulReporter: {
  45. reports: ['html', 'text-summary'],
  46. dir: path.join('.', 'coverage'),
  47. fixWebpackSourcePaths: true
  48. },
  49. browserNoActivityTimeout: 31000, // 31 seconds - upped from 10 seconds
  50. browserDisconnectTimeout: 31000, // 31 seconds - upped from 2 seconds
  51. browserDisconnectTolerance: 2,
  52. port: 9876,
  53. colors: true,
  54. singleRun: true,
  55. logLevel: config.LOG_INFO
  56. });
  57. };