Trong trường hợp chúng tôi thực hiện kiểm thử đơn vị trong PhantomJs bằng các cách sau.không thể thực hiện thử nghiệm đơn vị nghiệp trong trình duyệt PhantomJS
karma: {
options: {
configFile: 'karma.conf.js',
runnerPort: 9876,
browsers: ['Chrome']
},
unitTestDev: {
browsers: ['PhantomJS'],
singleRun: true
}
}
grunt.registerTask('unitTest',['karma:unitTestDev']);
Đây là tệp 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
});
};
Khi thực hiện "nghiệp chướng: unitTestDev" lệnh, sau đó nhận được lỗi sau đây.
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.
Chúng tôi đang gặp sự cố ở trên trong hệ điều hành Windows và Linux. Trong Mac, nghiệp thành công thực thi các thử nghiệm trên PhantomJS.
Trong cửa sổ, Nếu chúng tôi thực hiện thử nghiệm ở trên trong trình duyệt Chrome, thay vì PhantomJS, thì nghiệp vụ thực hiện thành công tất cả các kiểm tra đơn vị.
Dưới đây là nghiệp chướng liên quan phụ thuộc vào 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ãy cho tôi biết nếu có bất kỳ vấn đề được biết đến trong nghiệp hoặc grunt với PhantomJS.
Tôi có cùng một vấn đề với 0.1.4, bất kỳ manh mối nào về vấn đề này? – kitensei
install libfontconfig: 'sudo apt-get install libfontconfig' –
Tôi đang gặp vấn đề tương tự –