安裝jasmine的環境(karma+jasmine)javascript
一.在npm包的devdependencies添加以下包:java
http-server jasmine-core karma karma-phantomjs-launcher karma-coverage karma-jasmine
二,配置karma.conf.js文件:node
module.exports = function(config) { config.set({ basePath: '.', frameworks: ['jasmine'], files: [ // paths loaded by Karma // {pattern: 'node_modules/angular2/bundles/angular2-polyfills.js', included: true, watched: true}, {pattern: 'node_modules/systemjs/dist/system.src.js', included: true, watched: true}, // {pattern: 'node_modules/rxjs/bundles/Rx.js', included: true, watched: true}, // {pattern: 'node_modules/angular2/bundles/angular2.dev.js', included: true, watched: true}, // {pattern: 'node_modules/angular2/bundles/testing.dev.js', included: true, watched: true}, {pattern: 'karma-test-shim.js', included: true, watched: true}, // paths loaded via module imports // {pattern: 'dev/*.js', included: false, watched: true}, {pattern: 'unit-test/javascript-test/*.js', included: false, watched: true} // paths to support debugging with source maps in dev tools // {pattern: 'dev/*.ts', included: false, watched: false}, // {pattern: 'dev/*.js.map', included: false, watched: false} ], // proxied base paths // proxies: { // // required for component assests fetched by Angular's compiler // '/src/': '/base/src/' // }, port: 9876, logLevel: config.LOG_INFO, colors: true, autoWatch: true, browsers: ['PhantomJS'], // Karma plugins loaded plugins: [ 'karma-jasmine', 'karma-coverage', 'karma-chrome-launcher' ], // Coverage reporter generates the coverage reporters: ['progress', 'dots', 'coverage'], // Source files that you wanna generate coverage for. // Do not include tests or libraries (these files will be instrumented by Istanbul) preprocessors: { 'dev/*.js': ['coverage'] }, coverageReporter: { type : 'cobertura', dir : 'coverage/' }, singleRun: true }) };
三,添加相應的ts及js測試目錄及文件chrome
四,配置npm裏的script,添加以下:typescript
"build": "rm unit-test/javascript/*.js && tsc -p unit-test/typescript/*.ts", "start": "http-server -c-1 -o -p 8875 .", "test": "karma start karma.conf.js", "coverage": "http-server -c-1 -0 -p 9875 ./coverage"
開始測試npm