首页 > 解决方案 > 解决 karma 中源文件的依赖关系解析

问题描述

我们已经使用 UI5 库构建了我们的应用程序,并为此编写了 jasmine 测试。我们很难覆盖这些 javascript 文件。

完整的 karma.config.js

module.exports = function (config) {
    config.set({
        basePath: '',
        frameworks: ['jasmine', 'openui5'],
        openui5: {
            path: "https://sapui5.hana.ondemand.com/resources/sap-ui-core.js",
            useMockServer: false
        },

        client: {
            openui5: {
                config: {
                    theme: 'sap_bluecrystal',
                    libs: 'sap.m,sap.bpm',

                    resourceRoots: {
                        "sap.bpm": "base/target/appresources/com/sap/bpm",
                    }
                }
            }
        },

        files: [
            'src/**/*.js' , 'test/**/*.js'

        ],

        preprocessors: {
            'test/**/*.js': ['coverage']
        },

        captureTimeout: 210000,
        browserDisconnectTolerance: 3,
        browserDisconnectTimeout: 210000,
        browserNoActivityTimeout: 210000,

        plugins: [
            'karma-jasmine',
            'karma-coverage',
            'karma-chrome-launcher',
            'karma-openui5',
            'karma-requirejs'

        ],
        reporters: ['progress', 'coverage'],
        port: 9878,
        colors: true,
        logLevel: config.LOG_DEBUG,
        autowatch: false,
        browsers: ['Chrome'],
        singleRun: true,
        concurrency: Infinity,
        coverageReporter: {
            includeAllSources: true,
            dir: 'coverage/',
            reporters: [
                { type: "html", subdir: "html" },
                { type: 'text-summary' }
            ]
        }
    });
};

标签: javascriptjasminesapui5karma-jasminecode-coverage

解决方案


好的:在预处理器条目中,您必须指定要检测哪些文件以进行覆盖。

在您的 conf 文件中,您为检测设置测试文件,这不太可能是您想要实现的目标

切换到

preprocessors: {
  'src/**/*.js': ['coverage']
},

可能会给你更好的结果:)


推荐阅读