2014-04-10 11 views
7

In Grunt führen wir Unit-Test in PhantomJs durch folgende Möglichkeiten aus.kann keinen Karma-Unit-Test im PhantomJS-Browser ausführen

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

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

Hier ist karma.conf.js Datei.

// 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 
    }); 
    }; 

Wenn "karma: unitTestDev" Befehl ausführen, dann erhalten folgende Fehler.

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. 

Wir erhalten das oben genannte Problem in Windows und Linux OS. Im Mac führt karma erfolgreich Tests mit PhantomJS durch.

In Windows, wenn wir obigen Test im Chrome-Browser anstelle von PhantomJS ausführen, führt Karma alle Komponententests erfolgreich aus.

Hier sind Karma Abhängigkeiten in 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" 

Lassen Sie mich wissen, wenn gibt es irgendwelche bekanntes Problem in Karma oder Grunzen mit PhantomJS.

Antwort

6

Es gibt ein Problem mit "Karma-Phantomjs-Launcher" v0.1.3. Ändere es auf v0.1.4 und dann funktioniert es gut.

+0

Ich habe genau das gleiche Problem mit 0.1.4, irgendwelche Hinweise zu diesem Thema? – kitensei

+1

install libfontconfig: 'sudo apt-get installieren libfontconfig' –

+0

Ich habe das gleiche Problem –

Verwandte Themen