Setup karma to test a node.js module?

Refresh

4 days ago

Views

945 time

1

I'm developing a Node.js module, and I want to use Karma to auto-test it while working.

In my config file, I setup this:

// list of files / patterns to load in the browser
files: [
  './index.js',
  './test/indexSpecs.js'
],

Obviously, since Node.js isn't included in the browser files, I get this error:

Uncaught ReferenceError: require is not defined

If i add:

files: [
  './node_modules/**/*.js',
  './index.js',
  './test/indexSpecs.js'
],

I get a bunch of errors. I think js files get loaded in alphabetical order, which is wrong.

I also think that Node.js cannot be run in a browser, so what I'm trying to do may be totally wrong. Is there an alternative?

2 answers

3

I'm developing a Node.js module, and I want to use Karma to auto-test it while working.

You should not. Karma is designed for client-side code.

To auto-test your code, the simplest way is to create a npm script similar to this one (with mocha):

"scripts": {
    "test": "mocha ./**",
    "test:watch": "npm run test -- -w"
}

Then, use npm test to run the tests on demand, or npm run test:watch to continuously run the tests.

You can also use a grunt or gulp script with a watch task if you prefer.

1

Вы правы насчет кармы не быть хорошо подходит для тестирования на стороне сервера кода. Он будет работать все в контексте браузера, который вызывает вопросы, которые вы видите. Если вы хотите, чтобы разработать модуль для сервера и клиента, которого вы могли бы использовать карму в сочетании с browserfiy, но вам все равно нужно будет запускать тесты в среде узла.

Вместо этого я бы предложил использовать мокко : простой и мощный тест бегун , который работает отлично подходит для тестирования узлов модулей.

Смотреть фильмы онлайн бабушка легкого поведения 2 фильм бесплатно