{"_id":"@sunpower/grunt-karma","_rev":"215-6f1d0c87a9e62f83fb5e7ad1a8b944a4","name":"@sunpower/grunt-karma","dist-tags":{"latest":"2.0.0-sp4"},"versions":{"2.0.0-sp1":{"name":"@sunpower/grunt-karma","version":"2.0.0-sp1","keywords":["gruntplugin","karma","grunt","test","unit","runner","TDD"],"author":{"name":"Dave Geddes"},"license":"MIT","_id":"@sunpower/grunt-karma@2.0.0-sp1","maintainers":[{"name":"jerryorta.dev","email":"jerryorta.dev@gmail.com"}],"contributors":[{"name":"Dave Geddes","email":"davidcgeddes@gmail.com"},{"name":"Julian Motz","email":"me@julianmotz.com"},{"name":"Michał Gołębiowski","email":"m.goleb@gmail.com"},{"name":"Mark Ethan Trostler","email":"mark@zzo.com"},{"name":"dsuckau","email":"denis.suckau@concepts-and-training.de"},{"name":"Daniel Herman","email":"daniel.c.herman@gmail.com"},{"name":"Eddie Monge","email":"eddie@eddiemonge.com"},{"name":"James Ford","email":"jford@psyked.co.uk"},{"name":"Jonas Pommerening","email":"jonas.pommerening@gmail.com"},{"name":"Julian","email":"me@julianmotz.com"},{"name":"Luis Almeida","email":"lmg.almeida@gmail.com"},{"name":"Matt Dean","email":"matt@trabian.com"},{"name":"Max Riveiro","email":"kavu13@gmail.com"},{"name":"Mike Dimmick","email":"mike.dimmick@mnetics.co.uk"},{"name":"Nicolas Breitwieser","email":"nicolas.breitwieser@googlemail.com"},{"name":"Olivier Amblet","email":"olivier@amblet.net"},{"name":"Pascal Precht","email":"pascal.precht@googlemail.com"},{"name":"Robin Hu","email":"rhu@novus.com"},{"name":"Roman Morozov","email":"romo@ciklum.com"},{"name":"Sahat Yalkabov","email":"sakhat@gmail.com"},{"name":"Valentin Hervieu","email":"valentin.hervieu@milanamos.com"},{"name":"Vlad Filippov","email":"vlad.filippov@gmail.com"},{"name":"Vojta Jina","email":"vojta.jina@gmail.com"},{"name":"enigmak","email":"redingerkai@gmail.com"},{"name":"facboy","email":"facboy@gmail.com"},{"name":"jiverson","email":"jiverson222@gmail.com"},{"name":"joshrtay","email":"joshrtay@gmail.com"},{"name":"kolesnik","email":"andrii_kolesnyk@epam.com"},{"name":"Alexander Slansky","email":"alexander@slansky.net"},{"name":"m7r","email":"martin@figuro-theater.de"},{"name":"Alexey Kucherenko","email":"alexei.kucherenko@gmail.com"},{"name":"Chris Gross","email":"cgross@texeltek.com"},{"name":"Chris Wren","email":"cthewren@gmail.com"},{"name":"Christian Reed","email":"christian@rgbfab.com"},{"name":"Christoph Kraemer","email":"chr.kraemer@sap.com"}],"homepage":"https://github.com/karma-runner/grunt-karma#readme","bugs":{"url":"https://github.com/karma-runner/grunt-karma/issues"},"dist":{"shasum":"c8c701786b79a9b3b426d54e096b6f9b857325c3","tarball":"https://registry.npmjs.org/@sunpower/grunt-karma/-/grunt-karma-2.0.0-sp1.tgz","integrity":"sha512-8+ir5wn1XrK/ORjFqGkU5TfkviDqvdWrCOf7XF0IHDuGBwyHZeYW0pUIkAKVHBavx/WvI1B0aCdGla76YTk6Kg==","signatures":[{"sig":"MEUCIQDS1RNwyyiCCrvOt6QL8365bvaOqUdHE1KAm8aa4P+jggIgMABuuj13X54yWBKmbeXN7NwUO+swngXFUyChlwVB7z8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"tasks/grunt-karma.js","_from":".","_shasum":"c8c701786b79a9b3b426d54e096b6f9b857325c3","gitHead":"34faeb21842709494cbbcb15614a27d4d6a17b17","scripts":{"test":"grunt test"},"_npmUser":{"name":"jerryorta.dev","email":"jerryorta.dev@gmail.com"},"repository":{"url":"git+https://github.com/karma-runner/grunt-karma.git","type":"git"},"_npmVersion":"3.10.3","description":"grunt plugin for karma test runner","directories":{},"_nodeVersion":"6.4.0","dependencies":{"lodash":"^4.13.1"},"devDependencies":{"grunt":"^1.0.1","karma":"^1.0.0","mocha":"^2.4.5","eslint":"^2.13.1","expect.js":"^0.3.1","grunt-npm":"0.0.2","grunt-bump":"0.8.0","karma-mocha":"1.x || ^0.2.0","grunt-eslint":"^18.1.0","load-grunt-tasks":"^3.2.0","eslint-plugin-react":"^5.2.2","grunt-contrib-watch":"^1.0.0","eslint-plugin-promise":"^1.3.2","karma-chrome-launcher":"^1.0.0","eslint-config-standard":"^5.3.1","eslint-plugin-standard":"^1.3.2","karma-firefox-launcher":"^1.0.0","grunt-conventional-changelog":"^6.1.0","grunt-conventional-github-releaser":"^1.0.0"},"peerDependencies":{"grunt":">=0.4.x || ^1.0.0","karma":"^0.13.0 || ^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/grunt-karma-2.0.0-sp1.tgz_1479323640480_0.7644990691915154","host":"packages-12-west.internal.npmjs.com"}},"2.0.0-sp2":{"name":"@sunpower/grunt-karma","version":"2.0.0-sp2","keywords":["gruntplugin","karma","grunt","test","unit","runner","TDD"],"author":{"name":"Dave Geddes"},"license":"MIT","_id":"@sunpower/grunt-karma@2.0.0-sp2","maintainers":[{"name":"akhilmalla","email":"akhilmalla@gmail.com"},{"name":"costin.iorgulescu","email":"Costin.Iorgulescu@sunpowercorp.com"},{"name":"eankutse","email":"emmanuel.ankutse@sunpowercorp.com"},{"name":"edthorne","email":"edward.thorne@sunpower.com"},{"name":"jerryorta.dev","email":"jerryorta.dev@gmail.com"},{"name":"jetkey","email":"dlparker@gmail.com"},{"name":"rspeed","email":"rawley.speed@sunpowercorp.com"},{"name":"vikaskansal","email":"Vikas.Kansal@sunpowercorp.com"}],"contributors":[{"name":"Dave Geddes","email":"davidcgeddes@gmail.com"},{"name":"Julian Motz","email":"me@julianmotz.com"},{"name":"Michał Gołębiowski","email":"m.goleb@gmail.com"},{"name":"Mark Ethan Trostler","email":"mark@zzo.com"},{"name":"dsuckau","email":"denis.suckau@concepts-and-training.de"},{"name":"Daniel Herman","email":"daniel.c.herman@gmail.com"},{"name":"Eddie Monge","email":"eddie@eddiemonge.com"},{"name":"James Ford","email":"jford@psyked.co.uk"},{"name":"Jonas Pommerening","email":"jonas.pommerening@gmail.com"},{"name":"Julian","email":"me@julianmotz.com"},{"name":"Luis Almeida","email":"lmg.almeida@gmail.com"},{"name":"Matt Dean","email":"matt@trabian.com"},{"name":"Max Riveiro","email":"kavu13@gmail.com"},{"name":"Mike Dimmick","email":"mike.dimmick@mnetics.co.uk"},{"name":"Nicolas Breitwieser","email":"nicolas.breitwieser@googlemail.com"},{"name":"Olivier Amblet","email":"olivier@amblet.net"},{"name":"Pascal Precht","email":"pascal.precht@googlemail.com"},{"name":"Robin Hu","email":"rhu@novus.com"},{"name":"Roman Morozov","email":"romo@ciklum.com"},{"name":"Sahat Yalkabov","email":"sakhat@gmail.com"},{"name":"Valentin Hervieu","email":"valentin.hervieu@milanamos.com"},{"name":"Vlad Filippov","email":"vlad.filippov@gmail.com"},{"name":"Vojta Jina","email":"vojta.jina@gmail.com"},{"name":"enigmak","email":"redingerkai@gmail.com"},{"name":"facboy","email":"facboy@gmail.com"},{"name":"jiverson","email":"jiverson222@gmail.com"},{"name":"joshrtay","email":"joshrtay@gmail.com"},{"name":"kolesnik","email":"andrii_kolesnyk@epam.com"},{"name":"Alexander Slansky","email":"alexander@slansky.net"},{"name":"m7r","email":"martin@figuro-theater.de"},{"name":"Alexey Kucherenko","email":"alexei.kucherenko@gmail.com"},{"name":"Chris Gross","email":"cgross@texeltek.com"},{"name":"Chris Wren","email":"cthewren@gmail.com"},{"name":"Christian Reed","email":"christian@rgbfab.com"},{"name":"Christoph Kraemer","email":"chr.kraemer@sap.com"}],"homepage":"https://github.com/karma-runner/grunt-karma#readme","bugs":{"url":"https://github.com/karma-runner/grunt-karma/issues"},"dist":{"shasum":"aab69a9babc65401b26c59cee383f8b6dc5173e6","tarball":"https://registry.npmjs.org/@sunpower/grunt-karma/-/grunt-karma-2.0.0-sp2.tgz","integrity":"sha512-zOXkvgGe/dSSJHRR2dbPDYSZsyrkTvhC/xx3VCN7jBjVv7Ytw0OYi69esqK0PA549a/d2OlpHTmtCkYSdOsGPQ==","signatures":[{"sig":"MEUCIBRftM2lrlyzMueBby/i/S9PKX/uJ8FK6q2tTAXtSsYSAiEA2QTZtp+iK4za3PwtGE7GvLnM8q+9vu8oh8fJBAI/oas=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"tasks/grunt-karma.js","_from":".","_shasum":"aab69a9babc65401b26c59cee383f8b6dc5173e6","gitHead":"669eb1c5ac699e4ebfd3acc49bcf73cf9418e640","scripts":{"test":"grunt test"},"_npmUser":{"name":"jerryorta.dev","email":"jerryorta.dev@gmail.com"},"repository":{"url":"git+https://github.com/karma-runner/grunt-karma.git","type":"git"},"_npmVersion":"3.10.3","description":"grunt plugin for karma test runner","directories":{},"_nodeVersion":"6.4.0","dependencies":{"lodash":"^4.13.1"},"devDependencies":{"grunt":"^1.0.1","karma":"^1.0.0","mocha":"^2.4.5","eslint":"^2.13.1","expect.js":"^0.3.1","grunt-npm":"0.0.2","grunt-bump":"0.8.0","karma-mocha":"1.x || ^0.2.0","grunt-eslint":"^18.1.0","load-grunt-tasks":"^3.2.0","eslint-plugin-react":"^5.2.2","grunt-contrib-watch":"^1.0.0","eslint-plugin-promise":"^1.3.2","karma-chrome-launcher":"^1.0.0","eslint-config-standard":"^5.3.1","eslint-plugin-standard":"^1.3.2","karma-firefox-launcher":"^1.0.0","grunt-conventional-changelog":"^6.1.0","grunt-conventional-github-releaser":"^1.0.0"},"peerDependencies":{"grunt":">=0.4.x || ^1.0.0","karma":"^0.13.0 || ^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/grunt-karma-2.0.0-sp2.tgz_1479324034546_0.29536612262018025","host":"packages-18-east.internal.npmjs.com"}},"2.0.0-sp3":{"name":"@sunpower/grunt-karma","version":"2.0.0-sp3","keywords":["gruntplugin","karma","grunt","test","unit","runner","TDD"],"author":{"name":"Dave Geddes"},"license":"MIT","_id":"@sunpower/grunt-karma@2.0.0-sp3","maintainers":[{"name":"akhilmalla","email":"akhilmalla@gmail.com"},{"name":"costin.iorgulescu","email":"Costin.Iorgulescu@sunpowercorp.com"},{"name":"eankutse","email":"emmanuel.ankutse@sunpowercorp.com"},{"name":"edthorne","email":"edward.thorne@sunpower.com"},{"name":"jerryorta.dev","email":"jerryorta.dev@gmail.com"},{"name":"jetkey","email":"dlparker@gmail.com"},{"name":"rspeed","email":"rawley.speed@sunpowercorp.com"},{"name":"vikaskansal","email":"Vikas.Kansal@sunpowercorp.com"}],"contributors":[{"name":"Dave Geddes","email":"davidcgeddes@gmail.com"},{"name":"Julian Motz","email":"me@julianmotz.com"},{"name":"Michał Gołębiowski","email":"m.goleb@gmail.com"},{"name":"Mark Ethan Trostler","email":"mark@zzo.com"},{"name":"dsuckau","email":"denis.suckau@concepts-and-training.de"},{"name":"Daniel Herman","email":"daniel.c.herman@gmail.com"},{"name":"Eddie Monge","email":"eddie@eddiemonge.com"},{"name":"James Ford","email":"jford@psyked.co.uk"},{"name":"Jonas Pommerening","email":"jonas.pommerening@gmail.com"},{"name":"Julian","email":"me@julianmotz.com"},{"name":"Luis Almeida","email":"lmg.almeida@gmail.com"},{"name":"Matt Dean","email":"matt@trabian.com"},{"name":"Max Riveiro","email":"kavu13@gmail.com"},{"name":"Mike Dimmick","email":"mike.dimmick@mnetics.co.uk"},{"name":"Nicolas Breitwieser","email":"nicolas.breitwieser@googlemail.com"},{"name":"Olivier Amblet","email":"olivier@amblet.net"},{"name":"Pascal Precht","email":"pascal.precht@googlemail.com"},{"name":"Robin Hu","email":"rhu@novus.com"},{"name":"Roman Morozov","email":"romo@ciklum.com"},{"name":"Sahat Yalkabov","email":"sakhat@gmail.com"},{"name":"Valentin Hervieu","email":"valentin.hervieu@milanamos.com"},{"name":"Vlad Filippov","email":"vlad.filippov@gmail.com"},{"name":"Vojta Jina","email":"vojta.jina@gmail.com"},{"name":"enigmak","email":"redingerkai@gmail.com"},{"name":"facboy","email":"facboy@gmail.com"},{"name":"jiverson","email":"jiverson222@gmail.com"},{"name":"joshrtay","email":"joshrtay@gmail.com"},{"name":"kolesnik","email":"andrii_kolesnyk@epam.com"},{"name":"Alexander Slansky","email":"alexander@slansky.net"},{"name":"m7r","email":"martin@figuro-theater.de"},{"name":"Alexey Kucherenko","email":"alexei.kucherenko@gmail.com"},{"name":"Chris Gross","email":"cgross@texeltek.com"},{"name":"Chris Wren","email":"cthewren@gmail.com"},{"name":"Christian Reed","email":"christian@rgbfab.com"},{"name":"Christoph Kraemer","email":"chr.kraemer@sap.com"}],"homepage":"https://github.com/UIUXEngineering/grunt-karma#readme","bugs":{"url":"https://github.com/UIUXEngineering/grunt-karma/issues"},"dist":{"shasum":"4cb54e9a299f8c5eb11249a6c7852b61f2816bc4","tarball":"https://registry.npmjs.org/@sunpower/grunt-karma/-/grunt-karma-2.0.0-sp3.tgz","integrity":"sha512-eqGPQKRWhfUYdpXuXzPIKnvaho9yqAF6HzlE1vP4mjdsxp7ZWFMrID2MquaTFQbzwnUJCnUUDEjB8TJa1+uXbQ==","signatures":[{"sig":"MEYCIQDV7OTsYCjIvlBtXRP0kA8kae7lFNphXGliV5XFflGhhQIhAMNTPgNRoaqONnZzMDkC//PEQZUaJhD3Bo5JKx3IWb5+","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"tasks/grunt-karma.js","_from":".","_shasum":"4cb54e9a299f8c5eb11249a6c7852b61f2816bc4","gitHead":"89c6e313c2db5e257e7299c5467fd1bb8bf6a9d4","scripts":{"test":"grunt test"},"_npmUser":{"name":"jerryorta.dev","email":"jerryorta.dev@gmail.com"},"repository":{"url":"git+https://github.com/UIUXEngineering/grunt-karma.git","type":"git"},"_npmVersion":"3.10.3","description":"grunt plugin for karma test runner","directories":{},"_nodeVersion":"6.4.0","dependencies":{"lodash":"^4.13.1"},"devDependencies":{"grunt":"^1.0.1","karma":"^1.0.0","mocha":"^2.4.5","eslint":"^2.13.1","expect.js":"^0.3.1","grunt-npm":"0.0.2","grunt-bump":"0.8.0","karma-mocha":"1.x || ^0.2.0","grunt-eslint":"^18.1.0","load-grunt-tasks":"^3.2.0","eslint-plugin-react":"^5.2.2","grunt-contrib-watch":"^1.0.0","eslint-plugin-promise":"^1.3.2","karma-chrome-launcher":"^1.0.0","eslint-config-standard":"^5.3.1","eslint-plugin-standard":"^1.3.2","karma-firefox-launcher":"^1.0.0","grunt-conventional-changelog":"^6.1.0","grunt-conventional-github-releaser":"^1.0.0"},"peerDependencies":{"grunt":">=0.4.x || ^1.0.0","karma":"^0.13.0 || ^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/grunt-karma-2.0.0-sp3.tgz_1479324353379_0.8900462135206908","host":"packages-18-east.internal.npmjs.com"}},"2.0.0-sp4":{"name":"@sunpower/grunt-karma","version":"2.0.0-sp4","keywords":["gruntplugin","karma","grunt","test","unit","runner","TDD"],"author":{"name":"Dave Geddes"},"license":"MIT","_id":"@sunpower/grunt-karma@2.0.0-sp4","maintainers":[{"name":"akhilmalla","email":"akhilmalla@gmail.com"},{"name":"costin.iorgulescu","email":"Costin.Iorgulescu@sunpowercorp.com"},{"name":"eankutse","email":"emmanuel.ankutse@sunpowercorp.com"},{"name":"edthorne","email":"edward.thorne@sunpower.com"},{"name":"jerryorta.dev","email":"jerryorta.dev@gmail.com"},{"name":"jetkey","email":"dlparker@gmail.com"},{"name":"rspeed","email":"rawley.speed@sunpowercorp.com"},{"name":"vikaskansal","email":"Vikas.Kansal@sunpowercorp.com"}],"contributors":[{"name":"Dave Geddes","email":"davidcgeddes@gmail.com"},{"name":"Julian Motz","email":"me@julianmotz.com"},{"name":"Michał Gołębiowski","email":"m.goleb@gmail.com"},{"name":"Mark Ethan Trostler","email":"mark@zzo.com"},{"name":"dsuckau","email":"denis.suckau@concepts-and-training.de"},{"name":"Daniel Herman","email":"daniel.c.herman@gmail.com"},{"name":"Eddie Monge","email":"eddie@eddiemonge.com"},{"name":"James Ford","email":"jford@psyked.co.uk"},{"name":"Jonas Pommerening","email":"jonas.pommerening@gmail.com"},{"name":"Julian","email":"me@julianmotz.com"},{"name":"Luis Almeida","email":"lmg.almeida@gmail.com"},{"name":"Matt Dean","email":"matt@trabian.com"},{"name":"Max Riveiro","email":"kavu13@gmail.com"},{"name":"Mike Dimmick","email":"mike.dimmick@mnetics.co.uk"},{"name":"Nicolas Breitwieser","email":"nicolas.breitwieser@googlemail.com"},{"name":"Olivier Amblet","email":"olivier@amblet.net"},{"name":"Pascal Precht","email":"pascal.precht@googlemail.com"},{"name":"Robin Hu","email":"rhu@novus.com"},{"name":"Roman Morozov","email":"romo@ciklum.com"},{"name":"Sahat Yalkabov","email":"sakhat@gmail.com"},{"name":"Valentin Hervieu","email":"valentin.hervieu@milanamos.com"},{"name":"Vlad Filippov","email":"vlad.filippov@gmail.com"},{"name":"Vojta Jina","email":"vojta.jina@gmail.com"},{"name":"enigmak","email":"redingerkai@gmail.com"},{"name":"facboy","email":"facboy@gmail.com"},{"name":"jiverson","email":"jiverson222@gmail.com"},{"name":"joshrtay","email":"joshrtay@gmail.com"},{"name":"kolesnik","email":"andrii_kolesnyk@epam.com"},{"name":"Alexander Slansky","email":"alexander@slansky.net"},{"name":"m7r","email":"martin@figuro-theater.de"},{"name":"Alexey Kucherenko","email":"alexei.kucherenko@gmail.com"},{"name":"Chris Gross","email":"cgross@texeltek.com"},{"name":"Chris Wren","email":"cthewren@gmail.com"},{"name":"Christian Reed","email":"christian@rgbfab.com"},{"name":"Christoph Kraemer","email":"chr.kraemer@sap.com"}],"homepage":"https://github.com/UIUXEngineering/grunt-karma#readme","bugs":{"url":"https://github.com/UIUXEngineering/grunt-karma/issues"},"dist":{"shasum":"6f351afa43d7f5e7347ebe16161ca868dacc44f8","tarball":"https://registry.npmjs.org/@sunpower/grunt-karma/-/grunt-karma-2.0.0-sp4.tgz","integrity":"sha512-FAaI0s4NcYhWbNDGxyAa97pnuYmrn8EDZQC3bnsOP54xUkvlAEQI+zExZX6ZN76mPseBSypKUQiXD8xmGld8Xw==","signatures":[{"sig":"MEUCIBgzPfcHG/8hAybVrLzFm9FxjGnhJUk/AVGbhQPDLnOzAiEAgNWBME7wDfAX6OoCPMg4/NgdyJEAGVYoows1Z2ussjs=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"tasks/grunt-karma.js","_from":".","_shasum":"6f351afa43d7f5e7347ebe16161ca868dacc44f8","gitHead":"43e1d0ea44a848a0806c82e3091d97e2f20521ec","scripts":{"test":"grunt test"},"_npmUser":{"name":"jerryorta.dev","email":"jerryorta.dev@gmail.com"},"repository":{"url":"git+https://github.com/UIUXEngineering/grunt-karma.git","type":"git"},"_npmVersion":"3.10.3","description":"grunt plugin for karma test runner","directories":{},"_nodeVersion":"6.4.0","dependencies":{"lodash":"^4.13.1"},"devDependencies":{"grunt":"^1.0.1","karma":"^1.0.0","mocha":"^2.4.5","eslint":"^2.13.1","expect.js":"^0.3.1","grunt-npm":"0.0.2","grunt-bump":"0.8.0","karma-mocha":"1.x || ^0.2.0","grunt-eslint":"^18.1.0","load-grunt-tasks":"^3.2.0","eslint-plugin-react":"^5.2.2","grunt-contrib-watch":"^1.0.0","eslint-plugin-promise":"^1.3.2","karma-chrome-launcher":"^1.0.0","eslint-config-standard":"^5.3.1","eslint-plugin-standard":"^1.3.2","karma-firefox-launcher":"^1.0.0","grunt-conventional-changelog":"^6.1.0","grunt-conventional-github-releaser":"^1.0.0"},"peerDependencies":{"grunt":">=0.4.x || ^1.0.0","karma":"^0.13.0 || ^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/grunt-karma-2.0.0-sp4.tgz_1479328829680_0.41340524167753756","host":"packages-12-west.internal.npmjs.com"}}},"time":{"created":"2016-11-16T19:14:02.717Z","modified":"2026-03-17T16:20:29.293Z","2.0.0-sp1":"2016-11-16T19:14:02.717Z","2.0.0-sp2":"2016-11-16T19:20:35.238Z","2.0.0-sp3":"2016-11-16T19:25:54.026Z","2.0.0-sp4":"2016-11-16T20:40:31.634Z"},"bugs":{"url":"https://github.com/UIUXEngineering/grunt-karma/issues"},"author":{"name":"Dave Geddes"},"license":"MIT","homepage":"https://github.com/UIUXEngineering/grunt-karma#readme","keywords":["gruntplugin","karma","grunt","test","unit","runner","TDD"],"repository":{"url":"git+https://github.com/UIUXEngineering/grunt-karma.git","type":"git"},"description":"grunt plugin for karma test runner","contributors":[{"name":"Dave Geddes","email":"davidcgeddes@gmail.com"},{"name":"Julian Motz","email":"me@julianmotz.com"},{"name":"Michał Gołębiowski","email":"m.goleb@gmail.com"},{"name":"Mark Ethan Trostler","email":"mark@zzo.com"},{"name":"dsuckau","email":"denis.suckau@concepts-and-training.de"},{"name":"Daniel Herman","email":"daniel.c.herman@gmail.com"},{"name":"Eddie Monge","email":"eddie@eddiemonge.com"},{"name":"James Ford","email":"jford@psyked.co.uk"},{"name":"Jonas Pommerening","email":"jonas.pommerening@gmail.com"},{"name":"Julian","email":"me@julianmotz.com"},{"name":"Luis Almeida","email":"lmg.almeida@gmail.com"},{"name":"Matt Dean","email":"matt@trabian.com"},{"name":"Max Riveiro","email":"kavu13@gmail.com"},{"name":"Mike Dimmick","email":"mike.dimmick@mnetics.co.uk"},{"name":"Nicolas Breitwieser","email":"nicolas.breitwieser@googlemail.com"},{"name":"Olivier Amblet","email":"olivier@amblet.net"},{"name":"Pascal Precht","email":"pascal.precht@googlemail.com"},{"name":"Robin Hu","email":"rhu@novus.com"},{"name":"Roman Morozov","email":"romo@ciklum.com"},{"name":"Sahat Yalkabov","email":"sakhat@gmail.com"},{"name":"Valentin Hervieu","email":"valentin.hervieu@milanamos.com"},{"name":"Vlad Filippov","email":"vlad.filippov@gmail.com"},{"name":"Vojta Jina","email":"vojta.jina@gmail.com"},{"name":"enigmak","email":"redingerkai@gmail.com"},{"name":"facboy","email":"facboy@gmail.com"},{"name":"jiverson","email":"jiverson222@gmail.com"},{"name":"joshrtay","email":"joshrtay@gmail.com"},{"name":"kolesnik","email":"andrii_kolesnyk@epam.com"},{"name":"Alexander Slansky","email":"alexander@slansky.net"},{"name":"m7r","email":"martin@figuro-theater.de"},{"name":"Alexey Kucherenko","email":"alexei.kucherenko@gmail.com"},{"name":"Chris Gross","email":"cgross@texeltek.com"},{"name":"Chris Wren","email":"cthewren@gmail.com"},{"name":"Christian Reed","email":"christian@rgbfab.com"},{"name":"Christoph Kraemer","email":"chr.kraemer@sap.com"}],"maintainers":[{"email":"jmartin@sunstrongmanagement.com","name":"jmartinsunstrong"},{"email":"gregory.lambert@gmail.com","name":"glambert27"},{"email":"baa_yoo@yahoo.com","name":"bamms"},{"email":"dominick.parise@sunstrongmanagement.com","name":"dparisesp"},{"email":"Gregory.Azevedo@sunpowercorp.com","name":"gregazevedo-sp"},{"email":"ksong@sunstrongmanagement.com","name":"ksong-sunstrong"},{"email":"aazares@sunstrongmanagement.com","name":"aazares"},{"email":"gazevedo@sunstrongmanagement.com","name":"gregazevedo-ss"}],"readme":"# grunt-karma\n\n[![js-standard-style](https://img.shields.io/badge/code%20style-standard-brightgreen.svg?style=flat-square)](https://github.com/karma-runner/grunt-karma)\n [![npm version](https://img.shields.io/npm/v/grunt-karma.svg?style=flat-square)](https://www.npmjs.com/package/grunt-karma) [![npm downloads](https://img.shields.io/npm/dm/grunt-karma.svg?style=flat-square)](https://www.npmjs.com/package/grunt-karma)\n\n[![Build Status](https://img.shields.io/travis/karma-runner/grunt-karma/master.svg?style=flat-square)](https://travis-ci.org/karma-runner/grunt-karma) [![Dependency Status](https://img.shields.io/david/karma-runner/grunt-karma.svg?style=flat-square)](https://david-dm.org/karma-runner/grunt-karma) [![devDependency Status](https://img.shields.io/david/dev/karma-runner/grunt-karma.svg?style=flat-square)](https://david-dm.org/karma-runner/grunt-karma#info=devDependencies)\n\n\n> Grunt plugin for [Karma](https://github.com/karma-runner/karma)\n\nThis current version uses `karma@0.13.x`. For using older versions see the\nold releases of grunt-karma.\n\n## Getting Started\nFrom the same directory as your project's Gruntfile and package.json, install\nkarma and grunt-karma with the following commands:\n\n```bash\n$ npm install karma --save-dev\n$ npm install grunt-karma --save-dev\n```\n\nOnce that's done, add this line to your project's Gruntfile:\n\n```js\ngrunt.loadNpmTasks('grunt-karma');\n```\n\n## Config\nInside your `Gruntfile.js` file, add a section named `karma`, containing\nany number of configurations for running karma. You can either put your\nconfig in a [karma config file] or leave it all in your Gruntfile (recommended).\n\n### Here's an example that points to the config file:\n\n```js\nkarma: {\n  unit: {\n    configFile: 'karma.conf.js'\n  }\n}\n```\n\n### Here's an example that puts the config in the Gruntfile:\n\n```js\nkarma: {\n  unit: {\n    options: {\n      files: ['test/**/*.js']\n    }\n  }\n}\n```\n\nYou can override any of the config file's settings by putting them\ndirectly in the Gruntfile:\n\n```js\nkarma: {\n  unit: {\n    configFile: 'karma.conf.js',\n    port: 9999,\n    singleRun: true,\n    browsers: ['PhantomJS'],\n    logLevel: 'ERROR'\n  }\n}\n```\n\nTo change the `logLevel` in the grunt config file instead of the karma config, use one of the following strings:\n`OFF`, `ERROR`, `WARN`, `INFO`, `DEBUG`\n\nThe `files` option can be extended \"per-target\" in the typical way\nGrunt handles [files][grunt-config-files]:\n\n```js\nkarma: {\n  options: {\n    files: ['lib/**/*.js']\n  },\n  unit: {\n    files: [\n      { src: ['test/**/*.js'] }\n    ]\n  }\n}\n```\n\nWhen using the \"Grunt way\" of specifying files, you can also extend the\nfile objects with the options [supported by karma][karma-config-files]:\n\n```js\nkarma: {\n  unit: {\n    files: [\n      { src: ['test/**/*.js'], served: true },\n      { src: ['lib/**/*.js'], served: true, included: false }\n    ]\n  }\n}\n```\n\n### Config with Grunt Template Strings in `files`\n\nWhen using template strings in the `files` option, the results will flattened. Therefore, if you include a variable that includes an array, the array will be flattened before being passed to Karma.\n\nExample:\n\n```js\nmeta: {\n  jsFiles: ['jquery.js','angular.js']\n},\nkarma: {\n  options: {\n    files: ['<%= meta.jsFiles %>','angular-mocks.js','**/*-spec.js']\n  }\n}\n```\n\n## Sharing Configs\nIf you have multiple targets, it may be helpful to share common\nconfiguration settings between them. Grunt-karma supports this by\nusing the `options` property:\n\n```js\nkarma: {\n  options: {\n    configFile: 'karma.conf.js',\n    port: 9999,\n    browsers: ['Chrome', 'Firefox']\n  },\n  continuous: {\n    singleRun: true,\n    browsers: ['PhantomJS']\n  },\n  dev: {\n    reporters: 'dots'\n  }\n}\n```\n\nIn this example the `continuous` and `dev` targets will both use\nthe `configFile` and `port` specified in the `options`. But\nthe `continuous` target will override the browser setting to use\nPhantomJS, and also run as a singleRun. The `dev` target will simply\nchange the reporter to dots.\n\n## Running tests\nThere are three ways to run your tests with karma:\n\n### Karma Server with Auto Runs on File Change\nSetting the `autoWatch` option to true will instruct karma to start\na server and watch for changes to files, running tests automatically:\n\n```js\nkarma: {\n  unit: {\n    configFile: 'karma.conf.js',\n    autoWatch: true\n  }\n}\n```\nNow run `$ grunt karma`\n\n### Karma Server with Grunt Watch\nMany Grunt projects watch several types of files using [grunt-contrib-watch].\nConfig karma like usual (without the autoWatch option), and add\n`background:true`:\n\n```js\nkarma: {\n  unit: {\n    configFile: 'karma.conf.js',\n    background: true,\n    singleRun: false\n  }\n}\n```\nThe `background` option will tell grunt to run karma in a child process\nso it doesn't block subsequent grunt tasks.\n\nThe `singleRun: false` option will tell grunt to keep the karma server up\nafter a test run.\n\nConfig your `watch` task to run the karma task with the `:run` flag. For example:\n\n```js\nwatch: {\n  //run unit tests with karma (server needs to be already running)\n  karma: {\n    files: ['app/js/**/*.js', 'test/browser/**/*.js'],\n    tasks: ['karma:unit:run'] //NOTE the :run flag\n  }\n},\n```\n\nIn your terminal window run `$ grunt karma:unit:start watch`, which starts the\nkarma server and the watch task. Now when grunt watch detects a change to\none of your watched files, it will run the tests specified in the `unit`\ntarget using the already running karma server. This is the preferred method\nfor development.\n\n### Single Run\nKeeping a browser window & karma server running during development is\nproductive, but not a good solution for build processes. For that reason karma\nprovides a \"continuous integration\" mode, which will launch the specified\nbrowser(s), run the tests, and close the browser(s). It also supports running\ntests in [PhantomJS], a headless webkit browser which is great for running tests as part of a build. To run tests in continous integration mode just add the `singleRun` option:\n\n```js\nkarma: {\n  unit: {\n    configFile: 'config/karma.conf.js',\n  },\n  //continuous integration mode: run tests once in PhantomJS browser.\n  continuous: {\n    configFile: 'config/karma.conf.js',\n    singleRun: true,\n    browsers: ['PhantomJS']\n  },\n}\n```\n\nThe build would then run `grunt karma:continuous` to start PhantomJS,\nrun tests, and close PhantomJS.\n\n## Using additional client.args\nYou can pass arbitrary `client.args` through the commandline like this:\n\n```bash\n$ grunt karma:dev watch --grep=mypattern\n```\n\n### Karma Server in a background process\n```js\nkarma: {\n  unit: {\n    background: true,\n    onBackgroundStart: function(data) {\n      // data.pid returned -- background process id\n      // Called with karma background process starts\n    },\n    backgroundServerEvents: ['run_complete', 'browser_error'], // <--- listen to karma server events\n    onBackgroundMessage: function(response) {\n      // Karma server events returned\n      // See http://karma-runner.github.io/1.0/dev/public-api.html\n      if (response.event === 'run_complete') {\n         console.log(response.pid);         // <--- background process id\n         console.log(response.data[0]);     // <--- 'browsers' data from 'run_complete' event\n         console.log(response.data[1]);     // <--- 'results' data from 'run_complete' event\n      }\n    }\n  }\n}\n```\nThe `background` option will tell grunt to run karma in a child process\nso it doesn't block subsequent grunt tasks.\n\nThe `onBackgroundStart` option is a callback function called when the child \nprocess is created. It only returns the background process id.\n\nThe `backgroundServerEvents` option is an array of karma server events to \nhave returned to the parent process via the `onBackgroundMessage` callback. \nExamples include `['browser_register', 'browser_error', 'run_complete']`. \nSee the Karma [public api](http://karma-runner.github.io/1.0/dev/public-api.html)\nfor a full list of events.\n\nThe `onBackgroundMessage` option is a callback function called that receives \nkarma server events passed in the 'backgroundServerEvents' array. The response\nobject has the following properties:\n\n```js\n {\n   pid: 1234,                   // <--- background process id\n   event: 'run_complete',       // <--- event name \n   data: [browsers, results]    // <--- Array of arguments returned from event\n }\n\n```\n\n## License\nMIT License\n\n[karma-config-file]: http://karma-runner.github.com/latest/config/configuration-file.html\n[karma-config-files]: http://karma-runner.github.io/latest/config/files.html\n[grunt-config-files]: http://gruntjs.com/configuring-tasks#files\n[grunt-contrib-watch]: https://github.com/gruntjs/grunt-contrib-watch\n[PhantomJS]: http://phantomjs.org/\n[karma-mocha]: https://github.com/karma-runner/karma-mocha\n","readmeFilename":"README.md"}