2017-03-18 27 views
0

我正在嘗試使用KarmaJasmine以及karma-wiredep來編寫Angular 1.6應用程序的測試,以加載Bower依賴項 - 目前它只包含角1.6.3。當我嘗試運行karma start時,我能夠看到加載的依賴關係,但即使沒有加載我的應用程序/測試代碼,Chrome和PhantomJS都會失敗,因此我認爲問題出在Karma配置 - 日誌確實顯示angular.js正在加載。兩者的錯誤與PhantomJS報告WARNING: Tried to load angular more than once.類似,但是我沒有看到發生在日誌中的情況。 Karma配置的方式有問題嗎?

Chrome 57.0.2987 (Mac OS X 10.12.3) ERROR Uncaught TypeError: window.angular.$$csp is not a function at bower_components/angular/angular.js:33345

PhantomJS 2.1.1 (Mac OS X 0.0.0) ERROR TypeError: undefined is not a constructor (evaluating 'window.angular.$$csp()') at bower_components/angular/angular.js:33345

PhantomJS 2.1.1 (Mac OS X 0.0.0) ERROR TypeError: undefined is not a constructor (evaluating 'angular.module('ngAnimateMock', ['ng']) .info({ angularVersion: '1.6.3' })') at bower_components/angular-mocks/angular-mocks.js:800

karma.conf.js

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: ['wiredep', 'ng-scenario', 'jasmine'], 

    //you can configure wiredep from here (optional) 
    wiredep: { 
     dependencies: true, // default: true 
     devDependencies: true, // default: false 
    }, 

    // list of files/patterns to load in the browser 
    files: [ 
    ], 

    // list of files to exclude 
    exclude: [ 
    ], 

    // test results reporter to use 
    // possible values: 'dots', 'progress' 
    // available reporters: https://npmjs.org/browse/keyword/karma-reporter 
    reporters: ['progress'], 

    // web server port 
    port: 9876, 

    // level of logging 
    // possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG 
    logLevel: config.LOG_DEBUG, 

    // start these browsers 
    // available browser launchers: https://npmjs.org/browse/keyword/karma-launcher 
    // browsers: ['Chrome', 'Firefox', 'Safari', 'PhantomJS', 'IE'], 
    browsers: ['Chrome'], 

    // Continuous Integration mode 
    // if true, Karma captures browsers, runs the tests and exits 
    singleRun: true, 

    // Concurrency level 
    // how many browser should be started simultaneous 
    concurrency: Infinity 
    }) 
} 

bower.json

{ 
    "name": "app-name", 
    "main": "script.js", 
    "version": "0.0.1", 
    "homepage": "", 
    "authors": [], 
    "description": "", 
    "keywords": [], 
    "license": "", 
    "ignore": [], 
    "dependencies": { 
    "angular": "^1.6.3" 
    }, 
    "devDependencies": { 
    "angular-mocks": "~1.6.x" 
    } 
} 

鉻日誌輸出

> karma start karma.conf.js 
18 03 2017 15:45:22.180:DEBUG [config]: autoWatch set to false, because of singleRun 
18 03 2017 15:45:22.185:DEBUG [plugin]: Loading karma-* from /path/to/app/node_modules 
18 03 2017 15:45:22.187:DEBUG [plugin]: Loading plugin /path/to/app/node_modules/karma-babel-preprocessor. 
18 03 2017 15:45:22.550:DEBUG [plugin]: Loading plugin /path/to/app/node_modules/karma-chrome-launcher. 
18 03 2017 15:45:22.554:DEBUG [plugin]: Loading plugin /path/to/app/node_modules/karma-jasmine. 
18 03 2017 15:45:22.555:DEBUG [plugin]: Loading plugin /path/to/app/node_modules/karma-ng-html2js-preprocessor. 
18 03 2017 15:45:22.556:DEBUG [plugin]: Loading plugin /path/to/app/node_modules/karma-ng-scenario. 
18 03 2017 15:45:22.556:DEBUG [plugin]: Loading plugin /path/to/app/node_modules/karma-phantomjs-launcher. 
18 03 2017 15:45:22.586:DEBUG [plugin]: Loading plugin /path/to/app/node_modules/karma-wiredep. 
18 03 2017 15:45:22.686:DEBUG [web-server]: Instantiating middleware 
18 03 2017 15:45:22.764:INFO [karma]: Karma v1.5.0 server started at http://0.0.0.0:9876/ 
18 03 2017 15:45:22.764:INFO [launcher]: Launching browser Chrome with unlimited concurrency 
18 03 2017 15:45:22.779:INFO [launcher]: Starting browser Chrome 
18 03 2017 15:45:22.780:DEBUG [temp-dir]: Creating temp dir at /var/folders/84/81q1wl5d5k58flxbpcgqq78w0000gn/T/karma-67345543 
18 03 2017 15:45:22.780:DEBUG [launcher]: /Applications/Google Chrome.app/Contents/MacOS/Google Chrome --user-data-dir=/var/folders/84/81q1wl5d5k58flxbpcgqq78w0000gn/T/karma-67345543 --no-default-browser-check --no-first-run --disable-default-apps --disable-popup-blocking --disable-translate --disable-background-timer-throttling --disable-device-discovery-notifications http://localhost:9876/?id=67345543 
18 03 2017 15:45:23.538:DEBUG [web-server]: serving: /path/to/app/node_modules/karma/static/client.html 
18 03 2017 15:45:23.557:DEBUG [web-server]: serving: /path/to/app/node_modules/karma/static/karma.js 
18 03 2017 15:45:23.751:DEBUG [karma]: A browser has connected on socket 358rR6cCQQIt8Y11AAAA 
18 03 2017 15:45:23.753:DEBUG [web-server]: serving: /path/to/app/node_modules/karma/static/favicon.ico 
18 03 2017 15:45:23.762:DEBUG [web-server]: upgrade /socket.io/?EIO=3&transport=websocket&sid=358rR6cCQQIt8Y11AAAA 
18 03 2017 15:45:23.808:INFO [Chrome 57.0.2987 (Mac OS X 10.12.3)]: Connected on socket 358rR6cCQQIt8Y11AAAA with id 67345543 
18 03 2017 15:45:23.809:DEBUG [launcher]: Chrome (id 67345543) captured in 1.045 secs 
18 03 2017 15:45:23.837:DEBUG [middleware:karma]: custom files null null null 
18 03 2017 15:45:23.837:DEBUG [middleware:karma]: Serving static request /context.html 
18 03 2017 15:45:23.839:DEBUG [web-server]: serving: /path/to/app/node_modules/karma/static/context.html 
18 03 2017 15:45:23.856:DEBUG [middleware:source-files]: Requesting /base/node_modules/jasmine-core/lib/jasmine-core/jasmine.js?916005cc407925f4764668d61d04888d59258f5d/
18 03 2017 15:45:23.856:DEBUG [middleware:source-files]: Fetching /path/to/app/node_modules/jasmine-core/lib/jasmine-core/jasmine.js 
18 03 2017 15:45:23.857:DEBUG [web-server]: serving (cached): /path/to/app/node_modules/jasmine-core/lib/jasmine-core/jasmine.js 
18 03 2017 15:45:23.859:DEBUG [middleware:source-files]: Requesting /base/node_modules/karma-jasmine/lib/boot.js?945a38bf4e45ad2770eb94868231905a04a0bd3e/
18 03 2017 15:45:23.859:DEBUG [middleware:source-files]: Fetching /path/to/app/node_modules/karma-jasmine/lib/boot.js 
18 03 2017 15:45:23.859:DEBUG [middleware:source-files]: Requesting /base/node_modules/karma-jasmine/lib/adapter.js?7a813cc290d592e664331c573a1a796192cdd1ad/
18 03 2017 15:45:23.859:DEBUG [middleware:source-files]: Fetching /path/to/app/node_modules/karma-jasmine/lib/adapter.js 
18 03 2017 15:45:23.860:DEBUG [middleware:source-files]: Requesting /base/node_modules/karma-ng-scenario/lib/angular-scenario.js?df746e558e332348ff12e0f08ddae4697abef3cd/
18 03 2017 15:45:23.860:DEBUG [middleware:source-files]: Fetching /path/to/app/node_modules/karma-ng-scenario/lib/angular-scenario.js 
18 03 2017 15:45:23.861:DEBUG [web-server]: serving (cached): /path/to/app/node_modules/karma-jasmine/lib/boot.js 
18 03 2017 15:45:23.861:DEBUG [web-server]: serving (cached): /path/to/app/node_modules/karma-jasmine/lib/adapter.js 
18 03 2017 15:45:23.862:DEBUG [web-server]: serving (cached): /path/to/app/node_modules/karma-ng-scenario/lib/angular-scenario.js 
18 03 2017 15:45:23.872:DEBUG [middleware:source-files]: Requesting /base/bower_components/angular-mocks/angular-mocks.js?428e663e720ed137f3931dc4e4079d00eb339620/
18 03 2017 15:45:23.872:DEBUG [middleware:source-files]: Fetching /path/to/app/bower_components/angular-mocks/angular-mocks.js 
18 03 2017 15:45:23.873:DEBUG [middleware:source-files]: Requesting /base/bower_components/angular/angular.js?367ccb6484896d3b163b691390f735bfca5cf17e/
18 03 2017 15:45:23.873:DEBUG [middleware:source-files]: Fetching /path/to/app/bower_components/angular/angular.js 
18 03 2017 15:45:23.873:DEBUG [middleware:source-files]: Requesting /base/node_modules/karma-ng-scenario/lib/adapter.js?88d12e473235d74e75f0db6cbd01396f5aa58e7b/
18 03 2017 15:45:23.874:DEBUG [middleware:source-files]: Fetching /path/to/app/node_modules/karma-ng-scenario/lib/adapter.js 
18 03 2017 15:45:23.875:DEBUG [web-server]: serving (cached): /path/to/app/bower_components/angular-mocks/angular-mocks.js 
18 03 2017 15:45:23.877:DEBUG [web-server]: serving (cached): /path/to/app/bower_components/angular/angular.js 
18 03 2017 15:45:23.890:DEBUG [web-server]: serving (cached): /path/to/app/node_modules/karma-ng-scenario/lib/adapter.js 
18 03 2017 15:45:23.892:DEBUG [web-server]: serving: /path/to/app/node_modules/karma/static/context.js 
Chrome 57.0.2987 (Mac OS X 10.12.3) ERROR 
    Uncaught TypeError: window.angular.$$csp is not a function 
    at bower_components/angular/angular.js:33345 


18 03 2017 15:45:24.094:DEBUG [karma]: Run complete, exiting. 
18 03 2017 15:45:24.094:DEBUG [launcher]: Disconnecting all browsers 
18 03 2017 15:45:24.452:DEBUG [launcher]: Process Chrome exited with code 0 
18 03 2017 15:45:24.452:DEBUG [temp-dir]: Cleaning temp dir /var/folders/84/81q1wl5d5k58flxbpcgqq78w0000gn/T/karma-67345543 
18 03 2017 15:45:24.482:DEBUG [launcher]: Finished all browsers 

phantomjs日誌輸出

> karma start 
    18 03 2017 15:43:45.349:DEBUG [config]: autoWatch set to false, because of singleRun 
18 03 2017 15:43:45.354:DEBUG [plugin]: Loading karma-* from /path/to/app/node_modules 
18 03 2017 15:43:45.357:DEBUG [plugin]: Loading plugin /path/to/app/node_modules/karma-babel-preprocessor. 
18 03 2017 15:43:45.735:DEBUG [plugin]: Loading plugin /path/to/app/node_modules/karma-chrome-launcher. 
18 03 2017 15:43:45.739:DEBUG [plugin]: Loading plugin /path/to/app/node_modules/karma-jasmine. 
18 03 2017 15:43:45.739:DEBUG [plugin]: Loading plugin /path/to/app/node_modules/karma-ng-html2js-preprocessor. 
18 03 2017 15:43:45.740:DEBUG [plugin]: Loading plugin /path/to/app/node_modules/karma-ng-scenario. 
18 03 2017 15:43:45.741:DEBUG [plugin]: Loading plugin /path/to/app/node_modules/karma-phantomjs-launcher. 
18 03 2017 15:43:45.769:DEBUG [plugin]: Loading plugin /path/to/app/node_modules/karma-wiredep. 
18 03 2017 15:43:45.880:DEBUG [web-server]: Instantiating middleware 
18 03 2017 15:43:45.969:INFO [karma]: Karma v1.5.0 server started at http://0.0.0.0:9876/ 
18 03 2017 15:43:45.970:INFO [launcher]: Launching browser PhantomJS with unlimited concurrency 
18 03 2017 15:43:45.980:INFO [launcher]: Starting browser PhantomJS 
18 03 2017 15:43:45.981:DEBUG [temp-dir]: Creating temp dir at /var/folders/84/81q1wl5d5k58flxbpcgqq78w0000gn/T/karma-75656583 
18 03 2017 15:43:45.984:DEBUG [launcher]: /path/to/app/node_modules/phantomjs-prebuilt/lib/phantom/bin/phantomjs /var/folders/84/81q1wl5d5k58flxbpcgqq78w0000gn/T/karma-75656583/capture.js 
18 03 2017 15:43:47.236:DEBUG [web-server]: serving: /path/to/app/node_modules/karma/static/client.html 
18 03 2017 15:43:47.246:DEBUG [web-server]: serving: /path/to/app/node_modules/karma/static/karma.js 
18 03 2017 15:43:47.290:DEBUG [karma]: A browser has connected on socket qu27-ez-B1uzsqMHAAAA 
18 03 2017 15:43:47.295:DEBUG [web-server]: upgrade /socket.io/?EIO=3&transport=websocket&sid=qu27-ez-B1uzsqMHAAAA 
18 03 2017 15:43:47.330:INFO [PhantomJS 2.1.1 (Mac OS X 0.0.0)]: Connected on socket qu27-ez-B1uzsqMHAAAA with id 75656583 
18 03 2017 15:43:47.331:DEBUG [launcher]: PhantomJS (id 75656583) captured in 1.361 secs 
18 03 2017 15:43:47.334:DEBUG [phantomjs.launcher]: 

18 03 2017 15:43:47.336:DEBUG [middleware:karma]: custom files null null null 
18 03 2017 15:43:47.336:DEBUG [middleware:karma]: Serving static request /context.html 
18 03 2017 15:43:47.337:DEBUG [web-server]: serving: /path/to/app/node_modules/karma/static/context.html 
18 03 2017 15:43:47.340:DEBUG [middleware:source-files]: Requesting /base/node_modules/jasmine-core/lib/jasmine-core/jasmine.js?916005cc407925f4764668d61d04888d59258f5d/
18 03 2017 15:43:47.340:DEBUG [middleware:source-files]: Fetching /path/to/app/node_modules/jasmine-core/lib/jasmine-core/jasmine.js 
18 03 2017 15:43:47.341:DEBUG [web-server]: serving (cached): /path/to/app/node_modules/jasmine-core/lib/jasmine-core/jasmine.js 
18 03 2017 15:43:47.342:DEBUG [middleware:source-files]: Requesting /base/bower_components/angular/angular.js?367ccb6484896d3b163b691390f735bfca5cf17e/
18 03 2017 15:43:47.342:DEBUG [middleware:source-files]: Fetching /path/to/app/bower_components/angular/angular.js 
18 03 2017 15:43:47.342:DEBUG [middleware:source-files]: Requesting /base/node_modules/karma-jasmine/lib/boot.js?945a38bf4e45ad2770eb94868231905a04a0bd3e/
18 03 2017 15:43:47.343:DEBUG [middleware:source-files]: Fetching /path/to/app/node_modules/karma-jasmine/lib/boot.js 
18 03 2017 15:43:47.343:DEBUG [middleware:source-files]: Requesting /base/node_modules/karma-jasmine/lib/adapter.js?7a813cc290d592e664331c573a1a796192cdd1ad/
18 03 2017 15:43:47.343:DEBUG [middleware:source-files]: Fetching /path/to/app/node_modules/karma-jasmine/lib/adapter.js 
18 03 2017 15:43:47.343:DEBUG [middleware:source-files]: Requesting /base/node_modules/karma-ng-scenario/lib/angular-scenario.js?df746e558e332348ff12e0f08ddae4697abef3cd/
18 03 2017 15:43:47.343:DEBUG [middleware:source-files]: Fetching /path/to/app/node_modules/karma-ng-scenario/lib/angular-scenario.js 
18 03 2017 15:43:47.343:DEBUG [middleware:source-files]: Requesting /base/node_modules/karma-ng-scenario/lib/adapter.js?88d12e473235d74e75f0db6cbd01396f5aa58e7b/
18 03 2017 15:43:47.343:DEBUG [middleware:source-files]: Fetching /path/to/app/node_modules/karma-ng-scenario/lib/adapter.js 
18 03 2017 15:43:47.344:DEBUG [web-server]: serving (cached): /path/to/app/bower_components/angular/angular.js 
18 03 2017 15:43:47.353:DEBUG [web-server]: serving (cached): /path/to/app/node_modules/karma-jasmine/lib/boot.js 
18 03 2017 15:43:47.353:DEBUG [web-server]: serving (cached): /path/to/app/node_modules/karma-jasmine/lib/adapter.js 
18 03 2017 15:43:47.353:DEBUG [web-server]: serving (cached): /path/to/app/node_modules/karma-ng-scenario/lib/angular-scenario.js 
18 03 2017 15:43:47.360:DEBUG [web-server]: serving (cached): /path/to/app/node_modules/karma-ng-scenario/lib/adapter.js 
18 03 2017 15:43:47.361:DEBUG [web-server]: serving: /path/to/app/node_modules/karma/static/context.js 
18 03 2017 15:43:47.362:DEBUG [middleware:source-files]: Requesting /base/bower_components/angular-mocks/angular-mocks.js?428e663e720ed137f3931dc4e4079d00eb339620/
18 03 2017 15:43:47.362:DEBUG [middleware:source-files]: Fetching /path/to/app/bower_components/angular-mocks/angular-mocks.js 
18 03 2017 15:43:47.364:DEBUG [web-server]: serving (cached): /path/to/app/bower_components/angular-mocks/angular-mocks.js 
18 03 2017 15:43:47.440:DEBUG [phantomjs.launcher]: WARNING: Tried to load angular more than once. 

18 03 2017 15:43:47.441:DEBUG [phantomjs.launcher]: TypeError: undefined is not a constructor (evaluating 'window.angular.$$csp()') 


18 03 2017 15:43:47.441:DEBUG [phantomjs.launcher]: http://localhost:9876/base/bower_components/angular/angular.js?367ccb6484896d3b163b691390f735bfca5cf17e:33345 in global code 

18 03 2017 15:43:47.443:DEBUG [phantomjs.launcher]: TypeError: undefined is not a constructor (evaluating 'angular.module('ngAnimateMock', ['ng']) 
    .info({ angularVersion: '1.6.3' })') 

    http://localhost:9876/base/bower_components/angular-mocks/angular-mocks.js?428e663e720ed137f3931dc4e4079d00eb339620:800 

PhantomJS 2.1.1 (Mac OS X 0.0.0) ERROR 
    TypeError: undefined is not a constructor (evaluating 'window.angular.$$csp()') 
    at bower_components/angular/angular.js:33345 


18 03 2017 15:43:47.453:DEBUG [karma]: Run complete, exiting. 
18 03 2017 15:43:47.454:DEBUG [launcher]: Disconnecting all browsers 
PhantomJS 2.1.1 (Mac OS X 0.0.0) ERROR 
    TypeError: undefined is not a constructor (evaluating 'angular.module('ngAnimateMock', ['ng']) 
    .info({ angularVersion: '1.6.3' })') 
    at bower_components/angular-mocks/angular-mocks.js:800 


18 03 2017 15:43:47.456:DEBUG [karma]: Run complete, exiting. 
18 03 2017 15:43:47.456:DEBUG [launcher]: Disconnecting all browsers 
18 03 2017 15:43:47.471:DEBUG [launcher]: Process PhantomJS exited with code 0 
18 03 2017 15:43:47.471:DEBUG [temp-dir]: Cleaning temp dir /var/folders/84/81q1wl5d5k58flxbpcgqq78w0000gn/T/karma-75656583 
18 03 2017 15:43:47.478:DEBUG [launcher]: Finished all browsers 

回答

0

我結束了追查問題向karma-ng-scenario但沒能解決這個問題 - 如果我刪除然後我就能夠沒有任何錯誤,但是對象,如browser加載角在測試中不可用。我在自述文件中注意到他們推薦使用Protractor進行新項目的端到端測試,所以我最終將其與Karma一起用於單元測試。

相關問題