单元测试 – 无法在PhantomJS浏览器中执行karma单元测试

前端之家收集整理的这篇文章主要介绍了单元测试 – 无法在PhantomJS浏览器中执行karma单元测试前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在grunt中,我们通过以下方式在PhantomJs中执行单元测试.
karma: {
        options: {
    configFile: 'karma.conf.js',runnerPort: 9876,browsers: ['Chrome']
    },unitTestDev: {
        browsers: ['PhantomJS'],singleRun: true
     }
}

grunt.registerTask('unitTest',['karma:unitTestDev']);

这是karma.conf.js文件.

// Karma configuration
// Generated on Thu Apr 03 2014 13:44:39 GMT-0500 (Central Daylight Time)

module.exports = function(config) {
  config.set({

    // base path that will be used to resolve all patterns (eg. files,exclude)
    basePath: '',// frameworks to use
    // available frameworks: https://npmjs.org/browse/keyword/karma-adapter
    frameworks: ['jasmine'],// list of files / patterns to load in the browser
    files: [
        {pattern: 'dist/lib/jquery/dist/jquery.js',watched: false,served: true,included: true},{pattern: 'dist/lib/jasmine-jquery/lib/jasmine-jquery.js',{pattern: 'dist/lib/angular/angular.js',{pattern: 'dist/lib/angular-route/angular-route.min.js',{pattern: 'dist/lib/angular-mocks/angular-mocks.js',{pattern: 'dist/main.min.js',{pattern: 'public/test/unit/**/*Spec.js',// fixtures
        {pattern: 'public/test/mock/**/*.json',watched: true,included: false}
    ],// list of files to exclude
    exclude: [

    ],// preprocess matching files before serving them to the browser
    // available preprocessors: https://npmjs.org/browse/keyword/karma-preprocessor
    preprocessors: {

    },// test results reporter to use
    // possible values: 'dots','progress'
    // available reporters: https://npmjs.org/browse/keyword/karma-reporter
    reporters: ['progress','html','junit','story'],htmlReporter: {
      outputDir: 'build/unit-test/html-report',templatePath: 'node_modules/karma-html-reporter/jasmine_template.html'
    },junitReporter: {
      outputFile: 'build/unit-test/junit-report/test-results.xml',suite: ''
    },// web server port
    port: 9876,// enable / disable colors in the output (reporters and logs)
    colors: true,// level of logging
    // possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG
    logLevel: config.LOG_INFO,// enable / disable watching file and executing tests whenever any file changes
    autoWatch: false,// start these browsers
    // available browser launchers: https://npmjs.org/browse/keyword/karma-launcher
    browsers: ['Chrome'],// Continuous Integration mode
    // if true,Karma captures browsers,runs the tests and exits
    singleRun: false
     });
    };

执行“karma:unitTestDev”命令时,会出现以下错误.

Running "karma:unitTestDev" (karma) task
INFO [karma]: Karma v0.11.14 server started at http://localhost:9876/
INFO [launcher]: Starting browser PhantomJS
ERROR [launcher]: Cannot start PhantomJS
    Error: spawn OK
INFO [launcher]: Trying to start PhantomJS again (1/2).
ERROR [launcher]: Cannot start PhantomJS
    Error: spawn OK
INFO [launcher]: Trying to start PhantomJS again (2/2).
ERROR [launcher]: Cannot start PhantomJS
    Error: spawn OK
ERROR [launcher]: PhantomJS Failed 2 times (cannot start). Giving up.
Warning: Task "karma:unitTestDev" Failed. Use --force to continue.

Aborted due to warnings.

我们在Windows和Linux OS中遇到了上述问题.在Mac中,业力成功地在PhantomJS上执行测试.

在Windows中,如果我们在Chrome浏览器中执行上述测试,而不是PhantomJS,那么karma会成功执行所有单元测试.

以下是Package.json中与业力相关的依赖关系

"phantomjs": "~1.9.7-3","karma": "~0.12.3","karma-chrome-launcher": "~0.1.3","karma-jasmine": "~0.1.5","karma-html-reporter": "~0.2.3","karma-junit-reporter": "~0.2.1","grunt-karma": "~0.8.2","karma-phantomjs-launcher": "~0.1.3"

让我知道是否有与PhantomJS的业力或咕噜声有任何已知问题.

解决方法

“Karma-phantomjs-launcher”v0.1.3存在问题.将其更改为v0.1.4,然后它可以正常工作.

猜你在找的JavaScript相关文章