I am a electron beginner. My electron version is 1.3.4 and platform is window 8.1. I am using karma to do electron unit test. But when I set environment it has many problem. Is it possible to do electron unit test?
I have an electron app with the following folder structure:
src/
|_app.vue
|_index.js
|_components/
|_SelectFolder.vue
test/
|_unit/
|_index.js
|_karma.conf.js
|_specs/
|_test.specs.js
Now index.js calls SelectFolder. I want to use karma to test SelectFolder method.
My karma.conf.js is like below:
var path = require('path')
var merge = require('webpack-merge')
var baseConfig = require('../../build/webpack.base.conf')
var utils = require('../../build/utils')
var webpack = require('webpack')
var projectRoot = path.resolve(__dirname, '../../')
var webpackConfig = merge(baseConfig, {
module: {
loaders: utils.styleLoaders()
},
devtool: '#inline-source-map',
vue: {
loaders: {
js: 'isparta'
}
},
plugins: [
new webpack.DefinePlugin({
'process.env': require('../../config/test.env')
})
],
target:'atom',
node: {
fs: "empty"
}
})
delete webpackConfig.entry
webpackConfig.module.preLoaders = webpackConfig.module.preLoaders || []
webpackConfig.module.preLoaders.unshift({
test: /\.js$/,
loader: 'isparta',
include: path.resolve(projectRoot, 'src')
})
// only apply babel for test files when using isparta
webpackConfig.module.loaders.some(function (loader, i) {
if (loader.loader === 'babel') {
loader.include = path.resolve(projectRoot, 'test/unit')
return true
}
})
module.exports = function (config) {
config.set({
browsers: ['Electron'],
frameworks: ['mocha', 'sinon-chai'],
reporters: ['spec', 'coverage'],
files: ['./index.js'],
preprocessors: {
'./index.js': ['electron']
},
client: {
useIframe: false
},
webpack: webpackConfig,
webpackMiddleware: {
noInfo: true
},
coverageReporter: {
dir: './coverage',
reporters: [
{ type: 'lcov', subdir: '.' },
{ type: 'text-summary' }
]
}
})
}
It says Electron 1.3.4 (Node 6.3.0) ERROR Uncaught ReferenceError: require is not defined. How do i solve it? If karma can't do electron unit test. What package I can use?
Any ideas?
Aucun commentaire:
Enregistrer un commentaire