Files
taimed/node_modules/karma-jsdom-launcher/README.md
2025-07-24 17:21:45 +08:00

118 lines
2.4 KiB
Markdown

# karma-jsdom-launcher
> Launcher for [jsdom].
## Installation
```bash
npm install karma-jsdom-launcher --save-dev
```
*NOTE:* karma and jsdom are peerDependencies of this module. If you haven't install them, run
```bash
npm install karma-jsdom-launcher jsdom karma --save-dev
```
to install all your dependencies.
## Configuration
```js
// karma.conf.js
module.exports = function(config) {
config.set({
browsers: ['jsdom'],
});
};
```
You can pass list of browsers as a CLI argument too:
```bash
karma start --browsers jsdom
```
You can pass options directly to jsdom as shown below. See jsdom's own
documentation for all supported options.
```js
// karma.conf.js
const jsdom = require("jsdom");
module.exports = function(config) {
config.set({
browsers: ['jsdom'],
jsdomLauncher: {
jsdom: {
resources: new jsdom.ResourceLoader({
userAgent: "foobar",
})
}
}
});
};
```
## FAQ
### I am using Gulp and the test suite is not exiting
This occurs due to lingering event handlers and it is currently an [unsolved
issue][issue-4]. Meanwhile you have to explicitly exit the process yourself.
This can be done by not passing a callback to Karma.Server or by invoking
process.exit(), as shown below.
```javascript
var gulp = require('gulp');
var Server = require('karma').Server;
gulp.task('test', function () {
new Server({
configFile: __dirname + '/karma.conf.js',
singleRun: true
}).start();
});
```
```javascript
var gulp = require('gulp');
var Server = require('karma').Server;
gulp.task('test', function (done) {
new Server({
configFile: __dirname + '/karma.conf.js',
singleRun: true
}, function (exitCode) {
done();
process.exit(exitCode);
}).start();
});
```
### I am using Angular CLI and the test suite hangs indefinitely
You might experience a [known issue][issue-27] where Karma attempts to perform
a synchronous request, resulting in a deadlock. Disable use of source-maps in
your tests, as shown below.
```
// angular.json
{
...
"test": {
"options": {
"sourceMap": false
```
----
For more information on Karma see the [homepage].
[homepage]: http://karma-runner.github.com
[jsdom]: https://github.com/tmpvar/jsdom
[issue-4]: https://github.com/badeball/karma-jsdom-launcher/issues/4
[issue-27]: https://github.com/badeball/karma-jsdom-launcher/issues/27