I am trying to run some unit tests for few days now without success. My application is written in typescript (the unit tests are written in typescript as well). Here is my karma configuration file:
module.exports = function (config) {
config.set({
basePath: "../../../../",
frameworks: [
"jasmine",
"systemjs"
],
browsers: ['PhantomJS'],
singleRun: true,
reporters: ['progress'],
systemjs: {
config: {
paths: {
systemjs: "src/main/webapp/static/js/engage/lib/bower/system.js/dist/system.src.js",
typescript: "build/node_modules/typescript/lib/typescript.js"
},
transpiler: "typescript"
},
// testFileSuffix: ".spec.ts"
},
files: [
'src/main/webapp/static/js/engage/dist/vendor/vendor.min.js',
'src/main/webapp/static/js/engage/lib/bower/system.js/dist/system-polyfills.src.js',
'src/main/webapp/static/js/engage/lib/bower/angular-mocks/angular-mocks.js',
{pattern: "src/main/webapp/static/js/engage/app/**/*.spec.ts", served: true, included: false}
]
});
};
When I run karma start
I get the following error:
05 09 2016 21:39:45.543:INFO [karma]: Karma v1.2.0 server started at http://localhost:9876/
05 09 2016 21:39:45.546:INFO [launcher]: Launching browser PhantomJS with unlimited concurrency
05 09 2016 21:39:45.558:INFO [launcher]: Starting browser PhantomJS
05 09 2016 21:39:47.631:INFO [PhantomJS 1.9.8 (Mac OS X 0.0.0)]: Connected on socket /#c-ZoxCczyYymPDAtAAAA with id 8911412
05 09 2016 21:39:47.650:WARN [web-server]: 404: /base/src/main/webapp/static/js/engage/lib/bower/system.js/dist/system-polyfills.js
PhantomJS 1.9.8 (Mac OS X 0.0.0) ERROR
You need to include some adapter that implements __karma__.start method!
If I change the browser property to Chrome, I get the following error:
Chrome 52.0.2743 (Mac OS X 10.11.6) ERROR
Error: ReferenceError: jasmineRequire is not defined
at eval (build/node_modules/karma-jasmine/lib/boot.js:14:32)
at eval (build/node_modules/karma-jasmine/lib/boot.js:41:2)
Evaluating build/node_modules/karma-jasmine/lib/boot.js
Error loading build/node_modules/karma-jasmine/lib/boot.js
Here is my package.json relevant dependencies:
"phantomjs": "^1.9.11",
"karma-systemjs": "^0.14.0",
"karma-jasmine": "^1.0.2",
"karma-chrome-launcher": "^0.1.5",
"jasmine-core": "^2.5.0"
Any help would be appreciated!
My configuration for system.js looks like this
systemjs: {
configFile: 'dev/systemjs.config.js',
config: {
map: {
'systemjs': 'node_modules/systemjs/dist/system.js',
'system-polyfills': 'node_modules/systemjs/dist/system-polyfills.js',
'es6-module-loader': 'node_modules/es6-module-loader/dist/es6-module-loader.js'
}
}
}
Maybe also some of the configuration snippets from this questions might help: Angular 2 + Karma + karma-jspm + karma-coverage + typescript report phantomJS failure
Try to add the plugins option to the karma config
plugins: [
'karma-jasmine',
'karma-chrome-launcher'
],
Use the last node.js 6.5 and update your dependencies to the latest version
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With