未捕获的ReferenceError:require未定义karma和webpack

时间:2017-07-13 19:58:39

标签: webpack karma-runner chai-as-promised

所以我只是想尝试使用karma和webpack这样的承诺,这就是我得到的。 enter image description here 我有柴如承诺,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
    }
  })
}

2 个答案:

答案 0 :(得分:0)

karma-chai-as-promised在测试中包含Chai-as-promise,将其作为script元素插入窗口。 (参见here。)但是,自Chai-as-promised 6.0以来,这已经不再可行了。此版本分发的代码取决于解决CommonJS require调用的机器的可用性。它可能是SystemJS或Webpack,或者你有什么,但必须解决这些问题。因此,不可能只将分布式代码放入网页中。

的可能性:

  1. 强制karma-chai-as-promised使用旧版本的Chai-as-promised。 chai-as-promisedkarma-chai-as-promised的同级依赖项,因此您可以将项目设置为早于6的版本。

  2. 删除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'