ant-design-vue/test/karma.conf.js

64 lines
1.9 KiB
JavaScript

// This is a karma config file. For more details see
// http://karma-runner.github.io/0.13/config/configuration-file.html
// we are also using it with karma-webpack
// https://github.com/webpack/karma-webpack
const path = require('path')
const webpack = require('webpack')
const webpackConfig = require('../webpack.config')
const merge = require('webpack-merge')
delete webpackConfig.entry
const scope = process.argv[5] || ''
process.env.CHROME_BIN = require('puppeteer').executablePath()
function resolve (basePath, suiteName = '') {
return path.join(basePath, '../components', suiteName.toLowerCase(), '__test__/__snapshots__', 'index.test.md')
}
module.exports = function (config) {
config.set({
// to run in additional browsers:
// 1. install corresponding karma launcher
// http://karma-runner.github.io/0.13/config/browsers.html
// 2. add it to the `browsers` array below.
browsers: ['ChromeHeadless'],
frameworks: ['mocha', 'snapshot', 'mocha-snapshot', 'sinon-chai'],
reporters: ['spec', 'coverage'],
files: ['../components/**/__snapshots__/**/*.md', './index.js'],
preprocessors: {
'../components/**/__snapshots__/**/*.md': ['snapshot'],
'./index.js': ['webpack', 'sourcemap'],
},
port: 9876,
colors: true,
// autoWatch: true,
webpack: merge(
{
plugins: [
new webpack.DefinePlugin({
'process.env': {
NODE_ENV: '"testing"',
SCOPE: `"${scope}"`,
},
}),
],
},
webpackConfig
),
webpackMiddleware: {
noInfo: true,
},
snapshot: {
update: !!process.env.UPDATE,
prune: !!process.env.PRUNE,
pathResolver: resolve, // Custom path resolver,
},
coverageReporter: {
dir: './coverage',
reporters: [
{ type: 'lcov', subdir: '.' },
{ type: 'text-summary' },
],
includeAllSources: false,
},
})
}