所以我只是想尝试使用karma和webpack这样的承诺,这就是我得到的。 我有柴如承诺,karma-chai-as-promised,sinon-chai,karma-sinon-chai,karma-webpack安装所以我应该好好去,但它不起作用 这是我的karma.config文件
var webpackConfig = require('../../build/webpack.test.conf')
module.exports = function (config) {
config.set({
browsers: ['ChromeHeadless'],
frameworks: ['mocha', 'chai-things', 'sinon-chai', 'chai-as-promised'],
reporters: ['spec', 'coverage'],
files: [
'../../node_modules/babel-polyfill/dist/polyfill.js',
'./index.js'],
preprocessors: {
'./index.js': ['webpack', 'sourcemap']
},
webpack: webpackConfig,
coverageReporter: {
dir: './coverage',
reporters: [
{ type: 'lcov', subdir: '.' },
{ type: 'text-summary' }
]
},
client: {
captureConsole: true
}
})
}
答案 0 :(得分:0)
karma-chai-as-promised
在测试中包含Chai-as-promise,将其作为script
元素插入窗口。 (参见here。)但是,自Chai-as-promised 6.0以来,这已经不再可行了。此版本分发的代码取决于解决CommonJS require
调用的机器的可用性。它可能是SystemJS或Webpack,或者你有什么,但必须解决这些问题。因此,不可能只将分布式代码放入网页中。
的可能性:
强制karma-chai-as-promised
使用旧版本的Chai-as-promised。 chai-as-promised
是karma-chai-as-promised
的同级依赖项,因此您可以将项目设置为早于6的版本。
删除karma-chai-as-promised
,让Webpack将其包含在您的测试包中。
答案 1 :(得分:0)
我已将此添加为辅助文件
import chai from 'chai'
chai.should()
import chaiAsPromised from 'chai-as-promised'
chai.use(chaiAsPromised)
然后您可以将其用作
import './chaiAsPromised.helper'