1 |
|
2 |
|
3 |
|
4 | const customLaunchers = require('./scripts/sauce-browsers').customLaunchers;
|
5 |
|
6 | module.exports = function (config) {
|
7 | const configuration = {
|
8 | basePath: '',
|
9 | frameworks: ['jasmine', '@angular/cli'],
|
10 | plugins: [
|
11 | require('karma-jasmine'),
|
12 | require('karma-chrome-launcher'),
|
13 | require('karma-jasmine-html-reporter'),
|
14 | require('karma-coverage-istanbul-reporter'),
|
15 | require('@angular/cli/plugins/karma')
|
16 | ],
|
17 | mime: { 'text/x-typescript': ['ts','tsx'] },
|
18 | client:{
|
19 | clearContext: false
|
20 | },
|
21 | files: [
|
22 | {pattern: './scripts/test.ts', watched: false}
|
23 | ],
|
24 | preprocessors: {
|
25 | './scripts/test.ts': ['@angular/cli']
|
26 | },
|
27 | coverageIstanbulReporter: {
|
28 | reports: [ 'html', 'lcovonly' ],
|
29 | fixWebpackSourcePaths: true
|
30 | },
|
31 | angularCli: {
|
32 | environment: 'dev'
|
33 | },
|
34 | reporters: config.angularCli && config.angularCli.codeCoverage
|
35 | ? ['progress', 'coverage-istanbul']
|
36 | : ['progress', 'kjhtml'],
|
37 | port: 9876,
|
38 | colors: true,
|
39 | logLevel: config.LOG_INFO,
|
40 | autoWatch: true,
|
41 | browsers: ['Chrome'],
|
42 | singleRun: false,
|
43 | customLaunchers: {
|
44 | Chrome_travis_ci: {
|
45 | base: 'Chrome',
|
46 | flags: ['--no-sandbox']
|
47 | }
|
48 | },
|
49 | };
|
50 |
|
51 | if (process.env.TRAVIS) {
|
52 | configuration.browsers = ['Chrome_travis_ci'];
|
53 | }
|
54 |
|
55 | if (process.env.SAUCE) {
|
56 | if (!process.env.SAUCE_USERNAME || !process.env.SAUCE_ACCESS_KEY) {
|
57 | console.log('Make sure the SAUCE_USERNAME and SAUCE_ACCESS_KEY environment variables are set.');
|
58 | process.exit(1);
|
59 | }
|
60 |
|
61 | configuration.plugins.push(require('karma-sauce-launcher'));
|
62 | configuration.reporters.push('saucelabs');
|
63 | configuration.sauceLabs = {
|
64 | verbose: true,
|
65 | testName: 'ng2-bootstrap unit tests',
|
66 | recordScreenshots: false,
|
67 | username: process.env.SAUCE_USERNAME,
|
68 | accessKey: process.env.SAUCE_ACCESS_KEY,
|
69 | connectOptions: {
|
70 | port: 5757,
|
71 | logfile: 'sauce_connect.log'
|
72 | },
|
73 | public: 'public'
|
74 | };
|
75 | configuration.captureTimeout = 0;
|
76 | configuration.customLaunchers = customLaunchers();
|
77 | configuration.browsers = Object.keys(configuration.customLaunchers);
|
78 | configuration.concurrency = 3;
|
79 | configuration.browserDisconnectTolerance = 2;
|
80 | configuration.browserNoActivityTimeout = 20000;
|
81 | configuration.browserDisconnectTimeout = 5000;
|
82 | }
|
83 |
|
84 | config.set(configuration);
|
85 | };
|