Skip to content
This repository was archived by the owner on Mar 22, 2019. It is now read-only.

usage with karma.cn

e-cloud edited this page Mar 19, 2016 · 1 revision

https://github.com/webpack/karma-webpack

karma-webpack

Installation

安装

npm install --save-dev karma-webpack

Usage

使用

// Karma configuration

module.exports = function(config) {
	config.set({
		// ... normal karma configuration

		files: [
			// all files ending in "_test"
			'test/*_test.js',
			'test/**/*_test.js'
			// each file acts as entry point for the webpack configuration
		],

		preprocessors: {
			// add webpack as preprocessor
			'test/*_test.js': ['webpack'],
			'test/**/*_test.js': ['webpack']
		},

		webpack: {
			// karma watches the test entry points
			// (you don't need to specify the entry option)
			// webpack watches dependencies

			// webpack configuration
		},

		webpackMiddleware: {
			// webpack-dev-middleware configuration
			// i. e.
			noInfo: true
		},

		plugins: [
			require("karma-webpack")
		]

	});
};

Alternative usage

可选方案

This configuration is more performant, but you cannot run single test anymore (only the complete suite).

这个配置更加高效,但再不能运行单个测试(只能是整套测试)。

The above configuration generates a webpack bundle for each test. For many testcases this can result in many big files. The alterative configuration creates a single bundle with all testcases.

上述的配置为每个测试都生成一个webpack的打包。对很多测试用例来说,会导致生成很多大文件。另一个配置给所有测试用例生成一个单独的打包。

		files: [
			// only specify one entry point
			// and require all tests in there
			'test/test_index.js'
		],

		preprocessors: {
			// add webpack as preprocessor
			'test/test_index.js': ['webpack']
		},
// test/test_index.js

// require all modules ending in "_test" from the
// current directory and all subdirectories
var testsContext = require.context(".", true, /_test$/);
testsContext.keys().forEach(testsContext);

Every test file is required using the require.context and compiled with webpack into one test bundle.

通过require.context 每个测试文件会被引用到并被webpack打成一个测试包。

Source Maps

You can use the karma-sourcemap-loader to get the source maps generated for your test bundle.

你可以使用karma-sourcemap-loader来得到测试包对应生成的sourcemap

npm install --save-dev karma-sourcemap-loader

And then add it to your preprocessors

并将其加入到预处理器中。

preprocessors: {
	'test/test_index.js': ['webpack', 'sourcemap']
}

And tell webpack to generate sourcemaps

并告知webpack生成sourcemap

webpack: {
  // ...
	devtool: 'inline-source-map'
}

Options

选项

This is the full list of options you can specify in your Karma config.

下面是可以在karma配置中指定的选项的完整列表

webpack

Webpack 配置.

webpackMiddleware

配置webpack-dev-middleware.

License

Copyright 2014-2015 Tobias Koppers

MIT

Clone this wiki locally