没有定义给予要求的业力设置

时间:2017-07-31 06:16:53

标签: javascript testing karma-runner

我在设置业力和测试方面是新手,所以我一直在经历一些例子来设置我的环境。 但是,每当我运行karma start时,它都会给我这个:

Uncaught ReferenceError: require is not defined
at test/person-test.js:1

我想我可能没有正确设置karma.conf.js,有没有人有任何线索?这就是我所拥有的:

module.exports = function(config) {
  config.set({

    basePath: '',
    frameworks: ['jasmine', 'browserify'],
    files: [
      'test/**/*.js'
    ],
    exclude: [],
    preprocessors: {
      'src/**/*.js': ['browserify']
    },
    plugins: [
      'karma-chrome-launcher',
      'karma-jasmine',
      'karma-browserify'
      ],
    browserify: {
      debug: true,
      transform: [ 'brfs', 'browserify-shim' ]
    },
    reporters: ['progress'],
    port: 9876,
    colors: true,
    logLevel: config.LOG_INFO,
    autoWatch: true,
    browsers: ['Chrome'],
    singleRun: false,
    concurrency: Infinity
  })
}

我有这样的文件结构:

.
├── src
|   └── person.js
├── test
|   ├── person-test.js
├── karma.conf.js
└── package.json

我的person.js文件是这样的:

class Person {
  constructor(name, age) {
    this.name = name;
    this.age = age;
  }

  upperCaseName() {
    this.name = this.name.upperCaseName();
  }
}

module.exports = Person;

和(到目前为止)我的person-test.js是:

const Person = require('../src/person.js')

1 个答案:

答案 0 :(得分:0)

基本上,您需要转换浏览器的源代码,将require调用替换为实际的模块代码。看看这些实用程序:

http://browserify.org/ - 它确实完成了您需要的转换

https://webpack.github.io/ - 一个更复杂的Web打包框架,具有许多其他有用的功能。

更新

Karma是一个在浏览器中运行测试的测试运行器。无论您设置什么浏览器,都不知道需要的功能是什么。

使用jasmine和node try jasmine-node。 https://github.com/mhevery/jasmine-node