poi-preset-karma

9.2.4 • Public • Published

poi-preset-karma

Use Karma to run unit tests for your Poi project.

Install

yarn add poi poi-preset-karma --dev

Notes: You have to install poi locally in your project.

Usage

// poi.config.js
module.exports = {
  presets: [
    require('poi-preset-karma')({
      port: 5001, // default
      files: ['test/unit/*.test.js'] // default
    })
  ]
}

Then run poi test, this preset will only be activated in test mode.

Or run poi test --watch to run Karma in watch mode.

Or run poi test --coverage to get code coverage as well.

Options

port

Type: number
Default: 5001

files

Type: Array string
Default: ['test/unit/**/*.test.js']

frameworks

Type: Array string
Default: ['mocha']

reporters

Type: Array string
Default: ['mocha']

If you enable code coverage the coverage reporter will automatically be added as well.

browsers

Type: Array string
Default: ['Chrome']

You can use headless option to switch it to ChromeHeadless which is only available when you have Chrome>=59 installed.

You can also directly set browsers option to override it.

headless

Type: boolean
Default: false

Switch browsers to ChromeHeadless.

watch

Type: boolean
Default: false

Run karma in watch mode.

coverage

Type: boolean
Default: false

Generate code coverage.

extendWebpack

Type: function
Default: undefined

Extend webpack config using webpack-chain:

require('poi-preset-karma')({
  extendWebpack(config) {
    config.some.action()
  }
})

Advanced

This preset can also directly read Karma config from karma property in poi.config.js, and it will be merged with default karma config we use:

// poi.config.js
module.exports = {
  karma: {
    frameworks: ['mocha', 'chai']
  }
}

We use Object.assign to merge custom karma config with our default one.

karma could also be a function, then we will use its return value as karma config:

// poi.config.js
module.exports = {
  karma(config) {
    config.reporters = ['nyancat']
    return config
  }
}

TypeScript support

It works with poi-preset-typescript.

You need to install karma-typescript and typescript locally in your project first, and configure poi-preset-typescript:

// poi.config.js
module.exports = {
  presets: [
    // The order matters!
    require('poi-preset-typescript')(),
    require('poi-preset-karma')()
  ]
}

License

MIT © EGOIST

Readme

Keywords

none

Package Sidebar

Install

npm i poi-preset-karma

Weekly Downloads

36

Version

9.2.4

License

none

Last publish

Collaborators

  • rem