我希望支持 karma-jasmine-html-reporterkarma-junit-reporter .

html记者看起来对开发者很好,但对于jenkins,我相信我们必须使用Junit记者 . 我是业力新手,所以我不确定记者是否合乎逻辑 .

但是,当我安装karma-jasmine-html-reporter时,它会从node_modules文件夹中删除karma-junit文件夹 . 有什么方法可以保持记者和那种情况下的配置?

Command executed:

npm install karma-jasmine-html-reporter --save-dev
npm install karma-junit-reporter --save-dev

karma.config.js

/**
 * @author: @AngularClass
 */

module.exports = function(config) {
    var testWebpackConfig = require('./webpack.test.js')({ env: 'test' });

    var configuration = {

        /**
         * Base path that will be used to resolve all patterns (e.g. files, exclude).
         */
        basePath: '',

        /**
         * Frameworks to use
         *
         * available frameworks: https://npmjs.org/browse/keyword/karma-adapter
         */
        frameworks: ['jasmine'],

        /**
         * List of files to exclude.
         */
        exclude: [],

        client: {
            captureConsole: false
        },

        /**
         * List of files / patterns to load in the browser
         *
         * we are building the test environment in ./spec-bundle.js
         */
        files: [
            { pattern: './config/spec-bundle.js', watched: false },
            { pattern: './src/assets/**/*', watched: false, included: false, served: true, nocache: false }
        ],

        /**
         * By default all assets are served at http://localhost:[PORT]/base/
         */
        proxies: {
            "/assets/": "/base/src/assets/"
        },

        /**
         * Preprocess matching files before serving them to the browser
         * available preprocessors: https://npmjs.org/browse/keyword/karma-preprocessor
         */
        preprocessors: { './config/spec-bundle.js': ['coverage', 'webpack', 'sourcemap'] },

        /**
         * Webpack Config at ./webpack.test.js
         */
        webpack: testWebpackConfig,

        coverageReporter: {
            type: 'in-memory'
        },

        remapCoverageReporter: {
            'text-summary': null,
            json: './coverage/coverage.json',
            html: './coverage/html'
        },

        /**
         * Webpack please don't spam the console when running in karma!
         */
        webpackMiddleware: {
            /**
             * webpack-dev-middleware configuration
             * i.e.
             */
            noInfo: true,
            /**
             * and use stats to turn off verbose output
             */
            stats: {
                /**
                 * options i.e.
                 */
                chunks: false
            }
        },

        /**
         * Test results reporter to use
         *
         * possible values: 'dots', 'progress'
         * available reporters: https://npmjs.org/browse/keyword/karma-reporter
         */
        reporters: ['kjhtml', 'coverage', 'remap-coverage', 'junit'],

        junitReporter: {
            outputFile: 'test-results.xml'
        },

        /**
         * Web server port.
         */
        port: 9876,

        /**
         * enable / disable colors in the output (reporters and logs)
         */
        colors: true,

        /**
         * Level of logging
         * possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG
         */
        logLevel: config.LOG_WARN,

        /**
         * enable / disable watching file and executing tests whenever any file changes
         */
        autoWatch: false,

        /**
         * start these browsers
         * available browser launchers: https://npmjs.org/browse/keyword/karma-launcher
         */
        browsers: [
            'Chrome'
        ],

        customLaunchers: {
            ChromeTravisCi: {
                base: 'Chrome',
                flags: ['--no-sandbox']
            }
        },

        /**
         * Continuous Integration mode
         * if true, Karma captures browsers, runs the tests and exits
         */
        singleRun: false
    };

    if (process.env.TRAVIS) {
        configuration.browsers = [
            'ChromeTravisCi'
        ];
    }

    config.set(configuration);
};