mirror of
https://github.com/WeBankFinTech/fes.js.git
synced 2025-06-10 04:21:26 +08:00
55 lines
1.7 KiB
JavaScript
55 lines
1.7 KiB
JavaScript
/* eslint-disable import/no-dynamic-require */
|
|
const path = require('path');
|
|
const fs = require('fs');
|
|
const webpackConfig = require('./webpack.test.config.js');
|
|
const generateConfig = require('../helpers/config');
|
|
const log = require('../helpers/log');
|
|
|
|
const configs = generateConfig();
|
|
|
|
|
|
let projectKarmaConfig;
|
|
const projectKarmaConfigFile = path.resolve(configs.folders.PROJECT_DIR, 'karma.config.js');
|
|
if (fs.existsSync(projectKarmaConfigFile)) {
|
|
log.message('[fes] 加载项目karma配置');
|
|
projectKarmaConfig = require(projectKarmaConfigFile);
|
|
}
|
|
|
|
module.exports = function (config) {
|
|
const defaultConfig = projectKarmaConfig || {
|
|
test: ['test/**/*.spec.js'],
|
|
coverage: ['src/components/**/*', 'src/helpers/**/*']
|
|
};
|
|
const testFiles = defaultConfig.test || [];
|
|
const coverageFiles = config.coverage ? (defaultConfig.coverage || []) : [];
|
|
const files = [].concat(testFiles, coverageFiles);
|
|
const preprocessors = {};
|
|
testFiles.forEach((item) => {
|
|
preprocessors[item] = ['webpack', 'sourcemap'];
|
|
});
|
|
coverageFiles.forEach((item) => {
|
|
preprocessors[item] = ['webpack', 'coverage'];
|
|
});
|
|
const reporters = [];
|
|
if (files.length) {
|
|
reporters.push('mocha');
|
|
}
|
|
if (coverageFiles.length) {
|
|
reporters.push('coverage-istanbul');
|
|
}
|
|
config.set({
|
|
basePath: configs.folders.PROJECT_DIR,
|
|
frameworks: ['mocha'],
|
|
files,
|
|
preprocessors,
|
|
webpack: webpackConfig,
|
|
reporters,
|
|
coverageIstanbulReporter: {
|
|
dir: path.join(configs.folders.PROJECT_DIR, '.coverage'),
|
|
reports: ['lcov', 'text'],
|
|
fixWebpackSourcePaths: true
|
|
},
|
|
browsers: ['Chrome']
|
|
});
|
|
};
|