lathonez / clicker

Ionic 2 + @angular/cli Seed Project : Angular2 + Typescript + Karma + Protractor + Travis
http://lathonez.com/2018/ionic-2-unit-testing/
MIT License
430 stars 137 forks source link

Facing issues with Karma-PhantomJS-Launcher in unit testing #208

Closed Asiq closed 7 years ago

Asiq commented 7 years ago

I have configured the Karma Plugins with karma-phantomjs-launcher My Configurations and Error List. Karma.conf.js : module.exports = function (config) { config.set({ basePath: '', frameworks: ['jasmine', 'angular-cli'], plugins: [ require('karma-jasmine'), require('karma-chrome-launcher'), require('karma-phantomjs-launcher'), require('karma-remap-istanbul'), require('karma-mocha-reporter'), require('angular-cli/plugins/karma') ], files: [ { pattern: './src/test.ts', watched: false } ], preprocessors: { './src/test.ts': ['angular-cli'] }, mime: { 'text/x-typescript': ['ts','tsx'] }, remapIstanbulReporter: { reports: { html: 'coverage', lcovonly: './coverage/coverage.lcov' } }, angularCli: { config: './angular-cli.json', environment: 'dev' }, reporters: config.angularCli && config.angularCli.codeCoverage ? ['mocha', 'karma-remap-istanbul'] : ['mocha'], port: 9876, colors: true, logLevel: config.LOG_INFO, cordovaSettings: { platforms: ['android', 'ios'], mode: 'emulate', hostip: '10.0.2.2', target: '0468de2a213eae29', plugins: [ 'org.apache.cordova.console' ] }, browsers: ['PhantomJS'], singleRun: true }); };

package.json file this is my devDependencies:

"devDependencies": { "@ionic/app-scripts": "0.0.47", "@types/jasmine": "2.5.38", "angular-cli": "1.0.0-beta.24", "codelyzer": "~0.0.26", "jasmine-core": "2.5.2", "jasmine-spec-reporter": "2.7.0", "karma": "1.3.0", "karma-chrome-launcher": "2.0.0", "karma-phantomjs-launcher": "1.0.2", "karma-cli": "1.0.1", "karma-jasmine": "1.1.0", "karma-mocha-reporter": "2.2.1", "karma-remap-istanbul": "0.2.2", "protractor": "4.0.13", "protractor-jasmine2-screenshot-reporter": "0.3.2", "ts-node": "1.7.2", "tslint": "4.1.1", "tslint-eslint-rules": "3.2.0", "typescript": "2.0.10" },

When i run the unit testing npm test .. Missing error handler on socket. TypeError: Cannot read property 'set' of null at KarmaRemapIstanbul.onBrowserComplete

Even Code Coverage is not showing any result.

Complete Error Message: Missing error handler on socket. TypeError: Cannot read property 'set' of null at KarmaRemapIstanbul.onBrowserComplete (D:\workstation\Local\29-11-2016\cut ePuppyPics\node_modules\karma-remap-istanbul\index.js:28:16) at Server. (D:\workstation\Local\29-11-2016\cutePuppyPics\node_mo dules\karma\lib\events.js:13:22) at emitTwo (events.js:111:20) at Server.emit (events.js:191:7) at Browser.onComplete (D:\workstation\Local\29-11-2016\cutePuppyPics\node_mo dules\karma\lib\browser.js:143:13) at Socket. (D:\workstation\Local\29-11-2016\cutePuppyPics\node_mo dules\karma\lib\events.js:13:22) at emitTwo (events.js:111:20) at Socket.emit (events.js:191:7) at Socket.onevent (D:\workstation\Local\29-11-2016\cutePuppyPics\node_module s\socket.io\lib\socket.js:335:8) at Socket.onpacket (D:\workstation\Local\29-11-2016\cutePuppyPics\node_modul es\socket.io\lib\socket.js:295:12) at Client.ondecoded (D:\workstation\Local\29-11-2016\cutePuppyPics\nodemodu les\socket.io\lib\client.js:193:14) at Decoder.Emitter.emit (D:\workstation\Local\29-11-2016\cutePuppyPics\node modules\component-emitter\index.js:134:20) at Decoder.add (D:\workstation\Local\29-11-2016\cutePuppyPics\node_modules\s ocket.io-parser\index.js:247:12) at Client.ondata (D:\workstation\Local\29-11-2016\cutePuppyPics\node_modules \socket.io\lib\client.js:175:18) at emitOne (events.js:96:13) at Socket.emit (events.js:188:7) at Socket.onPacket (D:\workstation\Local\29-11-2016\cutePuppyPics\node_modul es\engine.io\lib\socket.js:101:14) at emitOne (events.js:96:13) at WebSocket.emit (events.js:188:7) at WebSocket.Transport.onPacket (D:\workstation\Local\29-11-2016\cutePuppyPi cs\node_modules\engine.io\lib\transport.js:104:8) at WebSocket.Transport.onData (D:\workstation\Local\29-11-2016\cutePuppyPics \node_modules\engine.io\lib\transport.js:115:8) at WebSocket.onData (D:\workstation\Local\29-11-2016\cutePuppyPics\node_modu les\engine.io\lib\transports\websocket.js:76:30) at emitTwo (events.js:106:13) at WebSocket.emit (events.js:191:7) at Receiver.ontext (D:\workstation\Local\29-11-2016\cutePuppyPics\node_modul es\engine.io\node_modules\ws\lib\WebSocket.js:816:10) at D:\workstation\Local\29-11-2016\cutePuppyPics\node_modules\engine.io\node _modules\ws\lib\Receiver.js:477:18 at Receiver.applyExtensions (D:\workstation\Local\29-11-2016\cutePuppyPics\n ode_modules\engine.io\node_modules\ws\lib\Receiver.js:364:5) at D:\workstation\Local\29-11-2016\cutePuppyPics\node_modules\engine.io\node _modules\ws\lib\Receiver.js:466:14 at Receiver.flush (D:\workstation\Local\29-11-2016\cutePuppyPics\node_module s\engine.io\node_modules\ws\lib\Receiver.js:340:3) at Receiver.finish (D:\workstation\Local\29-11-2016\cutePuppyPics\node_modul es\engine.io\node_modules\ws\lib\Receiver.js:482:12) at Receiver.expectHandler (D:\workstation\Local\29-11-2016\cutePuppyPics\nod e_modules\engine.io\node_modules\ws\lib\Receiver.js:451:33) at Receiver.add (D:\workstation\Local\29-11-2016\cutePuppyPics\node_modules\ engine.io\node_modules\ws\lib\Receiver.js:95:24) at Socket.realHandler (D:\workstation\Local\29-11-2016\cutePuppyPics\node_mo dules\engine.io\node_modules\ws\lib\WebSocket.js:800:20) at emitOne (events.js:96:13) at Socket.emit (events.js:188:7) at readableAddChunk (_stream_readable.js:176:18) at Socket.Readable.push (_stream_readable.js:134:10) at TCP.onread (net.js:548:20) 12 01 2017 16:55:41.061:WARN [PhantomJS 2.1.1 (Windows 7 0.0.0)]: Disconnected ( 2 times) PhantomJS 2.1.1 (Windows 7 0.0.0) ERROR Disconnectedundefined PhantomJS 2.1.1 (Windows 7 0.0.0) ERROR Disconnectedundefined 12 01 2017 16:55:51.020:WARN [PhantomJS 2.1.1 (Windows 7 0.0.0)]: Disconnected ( 3 times), because no message in 10000 ms. PhantomJS 2.1.1 (Windows 7 0.0.0) ERROR Disconnected, because no message in 10000 ms.

lathonez commented 7 years ago

Hey,

I've wasted enough of my life trying to support (and debug) PhantomJS, inside and outside of this repo, to have no interest whatsoever in doing so here.

Essentially we use whatever ng-cli use upstream.

Have dig around and see if you can find anything with ng-cli and Phantom:

Looking at the error message, you might try to disable code coverage to see if it gets you anywhere.

Sorry to not be more helpful, but I don't have the time to support anything test-wise outside of ng-cli.

Thanks

Asiq commented 7 years ago

Hey,

Thanks for your comments, Here im using angular ng-cli way to achieved the code coverage and unit test cases , basically i followed your clicker project as taking an example of writing unit test cases for my project. It was really helped me lot.

Now my goal is to disconnect the karma runner after first time test cases are ran.(the reason behind is to execute my Jenkins command after unit test cases).

could you please guide me on this, How do I can achieved it.

Thanks