Pregunta

En Grunt ejecutamos la prueba de unidad en Phantomjs siguiendo formas.

karma: {
        options: {
    configFile: 'karma.conf.js',
    runnerPort: 9876,
    browsers: ['Chrome']
    },
unitTestDev: {
        browsers: ['PhantomJS'],
        singleRun: true
     }
}

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

Aquí está el archivo 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', watched: false, served: true, included: true},
        {pattern: 'dist/lib/angular/angular.js', watched: false, served: true, included: true},
        {pattern: 'dist/lib/angular-route/angular-route.min.js', watched: false, served: true, included: true},
        {pattern: 'dist/lib/angular-mocks/angular-mocks.js', watched: false, served: true, included: true},

        {pattern: 'dist/main.min.js', watched: false, served: true, included: true},

        {pattern: 'public/test/unit/**/*Spec.js', watched: false, served: true, included: true},

        // fixtures
        {pattern: 'public/test/mock/**/*.json', watched: true, served: 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
     });
    };

Cuando ejecute el comando "karma: unittestdev", obteniendo los siguientes errores.

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.

Estamos superando el problema en Windows y Linux OS.En Mac, Karma ejecuta exitosamente pruebas en Phantomjs.

En Windows, si ejecutamos la prueba anterior en el navegador Chrome, en lugar de Phantomjs, entonces Karma ejecuta con éxito todas las pruebas de la unidad.

Aquí están las dependencias relacionadas con Karma en 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"

Hágame saber si hay algún problema conocido en el karma o en gruñido con Phantomjs.

¿Fue útil?

Solución

Hay un problema con "karma-phantomjs-launcher" v0.1.3.Cámbialo a v0.1.4 y luego funciona bien.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top