Angularjs 警告[PhantomJS 1.9.8(Mac OS X)]:断开连接(1次),因为10000毫秒内没有消息

Angularjs 警告[PhantomJS 1.9.8(Mac OS X)]:断开连接(1次),因为10000毫秒内没有消息,angularjs,macos,requirejs,karma-jasmine,Angularjs,Macos,Requirejs,Karma Jasmine,我的项目是爱奥尼亚·安格拉斯·雷奎里斯 我的环境是Mac OS X 10.10.1,节点v0.10.30 我想将karma测试集成到我的项目中,但当我运行grunt测试时,这是错误的: 结果: Running "karma:unit" (karma) task INFO [karma]: Karma v0.12.28 server started at http://localhost:9876/ INFO [launcher]: Starting browser PhantomJS INFO

我的项目是爱奥尼亚·安格拉斯·雷奎里斯
我的环境是Mac OS X 10.10.1,节点v0.10.30

我想将karma测试集成到我的项目中,但当我运行
grunt测试时,这是错误的:

结果:

Running "karma:unit" (karma) task

INFO [karma]: Karma v0.12.28 server started at http://localhost:9876/
INFO [launcher]: Starting browser PhantomJS
INFO [PhantomJS 1.9.8 (Mac OS X)]: Connected on socket UhgMIttDejE4Xdm8I7mG with id 52208731
WARN [PhantomJS 1.9.8 (Mac OS X)]: Disconnected (1 times), because no message in 10000 ms.

Warning: Task "karma:unit" failed. Use --force to continue.

Aborted due to warnings.
"grunt-bower-requirejs": "^1.1.1",
"grunt-contrib-uglify": "^0.2.7",
"grunt-karma": "^0.9.0",
"karma": "^0.12.28",
"karma-jasmine": "^0.3.2",
"karma-phantomjs-launcher": "^0.1.4",
"karma-requirejs": "^0.2.2",
"requirejs": "^2.1.15"
module.exports = function (grunt) {

grunt.initConfig({
    pkg: grunt.file.readJSON('package.json'),
    bower: {
        target: {
            rjsConfig: 'js/main.js'
        }
    },
    uglify: {
        options: {
            banner: '/*! <%= pkg.name %> <%= grunt.template.today("yyyy-mm-dd") %> */\n'
        },
        build: {
            src: 'src/<%= pkg.name %>.js',
            dest: 'build/<%= pkg.name %>.min.js'
        },
    },
    karma: {
        unit: {
            options: {
                frameworks: ['jasmine', 'requirejs'],
                browsers: ['PhantomJS'],
                autoWatch: true,
                singleRun: true,
                files: [
                    'lib/js/generated/angular/angular.js',
                    'lib/js/generated/angular-mocks/angular-mocks.js',
                    //'js/**/*.js',
                    //'templates/**/*.html',
                    'tests/*.tests.js'
                ],
                exclude: [
                    'js/main.js'
                ]
            }
        }
    }
});

grunt.loadNpmTasks('grunt-contrib-uglify');
grunt.loadNpmTasks('grunt-bower-requirejs');
grunt.loadNpmTasks('grunt-karma');

// Tell Grunt what to do when we type "grunt" into the terminal
grunt.registerTask('default', [
    'uglify',
    'bower'
]);
grunt.registerTask('test', [
    'karma'
]);

这是我的包中的依赖项。json:

Running "karma:unit" (karma) task

INFO [karma]: Karma v0.12.28 server started at http://localhost:9876/
INFO [launcher]: Starting browser PhantomJS
INFO [PhantomJS 1.9.8 (Mac OS X)]: Connected on socket UhgMIttDejE4Xdm8I7mG with id 52208731
WARN [PhantomJS 1.9.8 (Mac OS X)]: Disconnected (1 times), because no message in 10000 ms.

Warning: Task "karma:unit" failed. Use --force to continue.

Aborted due to warnings.
"grunt-bower-requirejs": "^1.1.1",
"grunt-contrib-uglify": "^0.2.7",
"grunt-karma": "^0.9.0",
"karma": "^0.12.28",
"karma-jasmine": "^0.3.2",
"karma-phantomjs-launcher": "^0.1.4",
"karma-requirejs": "^0.2.2",
"requirejs": "^2.1.15"
module.exports = function (grunt) {

grunt.initConfig({
    pkg: grunt.file.readJSON('package.json'),
    bower: {
        target: {
            rjsConfig: 'js/main.js'
        }
    },
    uglify: {
        options: {
            banner: '/*! <%= pkg.name %> <%= grunt.template.today("yyyy-mm-dd") %> */\n'
        },
        build: {
            src: 'src/<%= pkg.name %>.js',
            dest: 'build/<%= pkg.name %>.min.js'
        },
    },
    karma: {
        unit: {
            options: {
                frameworks: ['jasmine', 'requirejs'],
                browsers: ['PhantomJS'],
                autoWatch: true,
                singleRun: true,
                files: [
                    'lib/js/generated/angular/angular.js',
                    'lib/js/generated/angular-mocks/angular-mocks.js',
                    //'js/**/*.js',
                    //'templates/**/*.html',
                    'tests/*.tests.js'
                ],
                exclude: [
                    'js/main.js'
                ]
            }
        }
    }
});

grunt.loadNpmTasks('grunt-contrib-uglify');
grunt.loadNpmTasks('grunt-bower-requirejs');
grunt.loadNpmTasks('grunt-karma');

// Tell Grunt what to do when we type "grunt" into the terminal
grunt.registerTask('default', [
    'uglify',
    'bower'
]);
grunt.registerTask('test', [
    'karma'
]);
这是我的Grunfile.js:

Running "karma:unit" (karma) task

INFO [karma]: Karma v0.12.28 server started at http://localhost:9876/
INFO [launcher]: Starting browser PhantomJS
INFO [PhantomJS 1.9.8 (Mac OS X)]: Connected on socket UhgMIttDejE4Xdm8I7mG with id 52208731
WARN [PhantomJS 1.9.8 (Mac OS X)]: Disconnected (1 times), because no message in 10000 ms.

Warning: Task "karma:unit" failed. Use --force to continue.

Aborted due to warnings.
"grunt-bower-requirejs": "^1.1.1",
"grunt-contrib-uglify": "^0.2.7",
"grunt-karma": "^0.9.0",
"karma": "^0.12.28",
"karma-jasmine": "^0.3.2",
"karma-phantomjs-launcher": "^0.1.4",
"karma-requirejs": "^0.2.2",
"requirejs": "^2.1.15"
module.exports = function (grunt) {

grunt.initConfig({
    pkg: grunt.file.readJSON('package.json'),
    bower: {
        target: {
            rjsConfig: 'js/main.js'
        }
    },
    uglify: {
        options: {
            banner: '/*! <%= pkg.name %> <%= grunt.template.today("yyyy-mm-dd") %> */\n'
        },
        build: {
            src: 'src/<%= pkg.name %>.js',
            dest: 'build/<%= pkg.name %>.min.js'
        },
    },
    karma: {
        unit: {
            options: {
                frameworks: ['jasmine', 'requirejs'],
                browsers: ['PhantomJS'],
                autoWatch: true,
                singleRun: true,
                files: [
                    'lib/js/generated/angular/angular.js',
                    'lib/js/generated/angular-mocks/angular-mocks.js',
                    //'js/**/*.js',
                    //'templates/**/*.html',
                    'tests/*.tests.js'
                ],
                exclude: [
                    'js/main.js'
                ]
            }
        }
    }
});

grunt.loadNpmTasks('grunt-contrib-uglify');
grunt.loadNpmTasks('grunt-bower-requirejs');
grunt.loadNpmTasks('grunt-karma');

// Tell Grunt what to do when we type "grunt" into the terminal
grunt.registerTask('default', [
    'uglify',
    'bower'
]);
grunt.registerTask('test', [
    'karma'
]);
module.exports=函数(grunt){
grunt.initConfig({
pkg:grunt.file.readJSON('package.json'),
鲍尔:{
目标:{
rjsConfig:'js/main.js'
}
},
丑陋的:{
选项:{
横幅:'/*!*/\n'
},
建造:{
src:'src/.js',
dest:'build/.min.js'
},
},
业力:{
单位:{
选项:{
框架:['jasmine','requirejs'],
浏览器:['PhantomJS'],
自动观察:没错,
singleRun:是的,
档案:[
'lib/js/generated/angular/angular.js',
'lib/js/generated/angular mocks/angular mocks.js',
//“js/***.js”,
//“templates/***.html”,
'tests/*.tests.js'
],
排除:[
'js/main.js'
]
}
}
}
});
grunt.loadNpmTasks(“grunt-contrib-uglify”);
grunt.loadNpmTasks('grunt-bower-requirejs');
grunt.loadNpmTasks(“grunt-karma”);
//告诉Grunt在终端中键入“Grunt”时要做什么
grunt.registerTask('default'[
"丑",,
“鲍尔”
]);
grunt.registerTask('test'[
“因果报应”
]);

})

我使用grunt karma插件的经验是,我花在调试插件上的时间比我实际使用的站点要多。我的解决方案是完全避免使用grunt exec来运行我的karma命令,或者只是不使用grunt并在新选项卡中手动运行karma

grunt.loadNpmTasks('grunt-exec');
var config =
    { 
      exec:   {
        karma : 'karma start {path to your karma.conf.js file}'
        // or 
        // karma : 'karma run {path to your karma.conf.js file}'
      }
    }
我知道这可能不是你想要的答案,但我的经验让我认识到,你从原始程序中获得的每一步都只是你必须调试的一个附加程序,而不是你自己的

尽管如此, 您的文件似乎未包含在内

我通常将我的karma配置文件分为不同的文件:

config/files.js config/common.conf.js config/karma.conf.js var commonConfig=require('./common.conf.js')

config/build.conf.js config/test.coverage.js 这样做可以让我在不同的情况下运行不同的业力配置

在开发过程中,我使用: karma start config/karma.conf.js

要在我运行的所有浏览器中获得测试覆盖率,请执行以下操作: karma start config/test.coverage.js

作为持续集成过程的一部分,我运行 karma start config/build.conf.js

使用此方法,我可以再次使用grunt exec在适当的时间运行这些命令