我正在学习如何使用Angular 2设置Karma并遇到问题。

我遵循了朱莉在她的seed project中所做的工作,并将其应用于我的项目。

一切都可以在Chrome中正常运行,但是当我想使用PhantomJS时出现错误。这也发生在PhantomJS2中...

这是错误:

[karma]: Karma v0.13.22 server started at http://localhost:9877/
[launcher]: Starting browser PhantomJS2
[PhantomJS 2.0.0 (Mac OS X 0.0.0)]: Connected on socket /#1yDrSei5NUX4_WYaAAAA with id 93476222
Missing error handler on `socket`.
TypeError: (msg || "").replace is not a function
   at node_modules/karma/lib/reporter.js:45:23

karma.config.js
module.exports = function (config) {
config.set({
    basePath : '',
    frameworks : ['jasmine'],
    files : [
        // paths loaded by Karma
        {pattern : 'node_modules/systemjs/dist/system-polyfills.js', included : true, watched : true},
        {pattern : 'node_modules/systemjs/dist/system.src.js', included : true, watched : true},
        {pattern : 'node_modules/es6-shim/es6-shim.js', included : true, watched : true},
        {pattern : 'node_modules/angular2/bundles/angular2-polyfills.js', included : true, watched : true},
        {pattern : 'node_modules/rxjs/bundles/Rx.js', included : true, watched : true},
        {pattern : 'node_modules/angular2/bundles/angular2.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},
        {pattern : 'app/**/*.js', included : false, watched : true},

        {pattern : 'app/**/*.html', included : false, watched : true},
        {pattern : 'app/**/*.css', included : false, watched : true},

        {pattern : 'test/**/*.ts', included : false, watched : false},
        {pattern : 'test/**/*.js', included : false, watched : true},
        {pattern : 'test/**/*.js.map', included : false, watched : false}

    ],

    proxies : {
        "/app/" : "/base/src/app/"
    },

    reporters : ['progress'],
    port : 9876,
    colors : true,
    logLevel : config.LOG_INFO,
    autoWatch : false,
    browsers : ['PhantomJS2'],
    singleRun : true
})}

有人知道我在做什么错吗?
提前致谢

最佳答案

确保您的karma.conf.js中有这行

{pattern: 'node_modules/systemjs/dist/system-polyfills.js', included: false, watched: false}, // PhantomJS2 (and possibly others) might require it

这个github项目适用于phantom:

https://github.com/danday74/angular2-coverage/blob/master/karma.conf.js

克隆并播放

10-04 22:17
查看更多