我正在运行命令 npm install karma karma-jasmine karma-phantomjs-launcher phantomjs@2.1.7 jasmine-core --save-devkarma start 在我的Linux CentOs 7.2机器上并收到此错误: bower_components/angular/angular.js:4641:53 forEach@bo
npm install karma karma-jasmine karma-phantomjs-launcher phantomjs@2.1.7 jasmine-core --save-dev karma start
在我的Linux CentOs 7.2机器上并收到此错误:
bower_components/angular/angular.js:4641:53 forEach@bower_components/angular/angular.js:321:24 loadModules@bower_components/angular/angular.js:4601:12 createInjector@bower_components/angular/angular.js:4523:30 workFn@vendor/angular-mocks.js:2427:60 TypeError: undefined is not an object (evaluating '$rootScope.$new') in my-components/my-specific-component/spec/mySpecificController.spec.js (line 84) createController@my-components/my-specific-component/spec/mySpecificController.spec.js:84:37 my-components/my-specific-component/spec/mySpecificController.spec.js:92:42 (...10 more tests failing in the same spec...) PhantomJS 2.1.1 (Linux 0.0.0): Executed 54 of 54 (11 FAILED) (0.349 secs / 1.251 secs)
我在Windows 7机器上运行完全相同的命令,所有测试都成功完成:
PhantomJS 2.1.1 (Windows 7 0.0.0): Executed 54 of 54 SUCCESS (0.152 secs / 1.102 secs)
我检查了安装的npm的版本:
赢7 —> npm 2.15.1
CentOs 7.2 —> npm 3.10.3
评论:不应该是一个showstopper,不应该吗?
Win 7上的npm安装模块:
myuser@mycomputer MINGW64 /c/Users/myuser/IdeaProjects/my_project/src/main/webapp (feature/some-feature) $npm ls --global C:\Users\myuser\AppData\Roaming\npm ├── bower@1.7.9 └─┬ karma-cli@1.0.1 └── resolve@1.1.7
CentOs7中安装的npm模块:
[root@localhost webapp]# npm ls --global /usr/lib ├── ansi@0.2.1 ├── bower@1.7.9 ├─┬ karma-cli@1.0.1 │ └── resolve@1.1.7 ├─┬ npm@3.10.3 │ ├── abbrev@1.0.9 -> /usr/lib/node_modules/npm/node_modules.bundled/abbrev │ ├── ansi-regex@2.0.0 -> /usr/lib/node_modules/npm/node_modules.bundled/ansi-regex │ ├── ansicolors@0.3.2 -> /usr/lib/node_modules/npm/node_modules.bundled/ansicolors │ ├── ansistyles@0.1.3 -> /usr/lib/node_modules/npm/node_modules.bundled/ansistyles │ ├── aproba@1.0.4 -> /usr/lib/node_modules/npm/node_modules.bundled/aproba │ ├── archy@1.0.0 -> /usr/lib/node_modules/npm/node_modules.bundled/archy │ ├── asap@2.0.4 -> /usr/lib/node_modules/npm/node_modules.bundled/asap │ ├── chownr@1.0.1 -> /usr/lib/node_modules/npm/node_modules.bundled/chownr │ ├── cmd-shim@2.0.2 -> /usr/lib/node_modules/npm/node_modules.bundled/cmd-shim │ ├─┬ columnify@1.5.4 -> /usr/lib/node_modules/npm/node_modules.bundled/columnify │ │ └─┬ wcwidth@1.0.0 │ │ └─┬ defaults@1.0.3 │ │ └── clone@1.0.2 │ ├─┬ config-chain@1.1.10 -> /usr/lib/node_modules/npm/node_modules.bundled/config-chain │ │ └── proto-list@1.2.4 │ ├── debuglog@1.0.1 -> /usr/lib/node_modules/npm/node_modules.bundled/debuglog │ ├── dezalgo@1.0.3 -> /usr/lib/node_modules/npm/node_modules.bundled/dezalgo │ ├── editor@1.0.0 -> /usr/lib/node_modules/npm/node_modules.bundled/editor │ ├── fs-vacuum@1.2.9 -> /usr/lib/node_modules/npm/node_modules.bundled/fs-vacuum │ ├── fs-write-stream-atomic@1.0.8 -> /usr/lib/node_modules/npm/node_modules.bundled/fs-write-stream-atomic │ ├── fstream@1.0.10 -> /usr/lib/node_modules/npm/node_modules.bundled/fstream │ ├─┬ fstream-npm@1.1.0 -> /usr/lib/node_modules/npm/node_modules.bundled/fstream-npm │ │ └─┬ fstream-ignore@1.0.5 │ │ └─┬ minimatch@3.0.0 │ │ └─┬ brace-expansion@1.1.4 │ │ ├── balanced-match@0.4.1 │ │ └── concat-map@0.0.1 │ ├─┬ glob@7.0.4 -> /usr/lib/node_modules/npm/node_modules.bundled/glob │ │ ├── fs.realpath@1.0.0 │ │ ├─┬ minimatch@3.0.0 │ │ │ └─┬ brace-expansion@1.1.5 │ │ │ ├── balanced-match@0.4.1 │ │ │ └── concat-map@0.0.1 │ │ └── path-is-absolute@1.0.0 │ ├── graceful-fs@4.1.4 -> /usr/lib/node_modules/npm/node_modules.bundled/graceful-fs │ ├── has-unicode@2.0.1 -> /usr/lib/node_modules/npm/node_modules.bundled/has-unicode │ ├── hosted-git-info@2.1.5 -> /usr/lib/node_modules/npm/node_modules.bundled/hosted-git-info │ ├── iferr@0.1.5 -> /usr/lib/node_modules/npm/node_modules.bundled/iferr │ ├── imurmurhash@0.1.4 -> /usr/lib/node_modules/npm/node_modules.bundled/imurmurhash │ ├── inflight@1.0.5 -> /usr/lib/node_modules/npm/node_modules.bundled/inflight │ ├── inherits@2.0.1 -> /usr/lib/node_modules/npm/node_modules.bundled/inherits │ ├── ini@1.3.4 -> /usr/lib/node_modules/npm/node_modules.bundled/ini │ ├─┬ init-package-json@1.9.4 -> /usr/lib/node_modules/npm/node_modules.bundled/init-package-json │ │ ├─┬ glob@6.0.4 │ │ │ ├─┬ minimatch@3.0.0 │ │ │ │ └─┬ brace-expansion@1.1.4 │ │ │ │ ├── balanced-match@0.4.1 │ │ │ │ └── concat-map@0.0.1 │ │ │ └── path-is-absolute@1.0.0 │ │ └── promzard@0.3.0 │ ├── lockfile@1.0.1 -> /usr/lib/node_modules/npm/node_modules.bundled/lockfile │ ├── lodash._baseindexof@3.1.0 -> /usr/lib/node_modules/npm/node_modules.bundled/lodash._baseindexof │ ├─┬ lodash._baseuniq@4.6.0 -> /usr/lib/node_modules/npm/node_modules.bundled/lodash._baseuniq │ │ ├── lodash._createset@4.0.3 │ │ └── lodash._root@3.0.1 │ ├── lodash._bindcallback@3.0.1 -> /usr/lib/node_modules/npm/node_modules.bundled/lodash._bindcallback │ ├── lodash._cacheindexof@3.0.2 -> /usr/lib/node_modules/npm/node_modules.bundled/lodash._cacheindexof │ ├── lodash._createcache@3.1.2 -> /usr/lib/node_modules/npm/node_modules.bundled/lodash._createcache │ ├── lodash._getnative@3.9.1 -> /usr/lib/node_modules/npm/node_modules.bundled/lodash._getnative │ ├─┬ lodash.clonedeep@4.3.2 -> /usr/lib/node_modules/npm/node_modules.bundled/lodash.clonedeep │ │ └── lodash._baseclone@4.5.3 │ ├── lodash.restparam@3.6.1 -> /usr/lib/node_modules/npm/node_modules.bundled/lodash.restparam │ ├─┬ lodash.union@4.4.0 -> /usr/lib/node_modules/npm/node_modules.bundled/lodash.union │ │ ├── lodash._baseflatten@4.2.1 │ │ └── lodash.rest@4.0.3 │ ├── lodash.uniq@4.3.0 -> /usr/lib/node_modules/npm/node_modules.bundled/lodash.uniq │ ├─┬ lodash.without@4.2.0 -> /usr/lib/node_modules/npm/node_modules.bundled/lodash.without │ │ ├─┬ lodash._basedifference@4.5.0 │ │ │ └── lodash._root@3.0.1 │ │ └── lodash.rest@4.0.3 │ ├─┬ mkdirp@0.5.1 -> /usr/lib/node_modules/npm/node_modules.bundled/mkdirp │ │ └── minimist@0.0.8 │ ├─┬ node-gyp@3.3.1 -> /usr/lib/node_modules/npm/node_modules.bundled/node-gyp │ │ ├─┬ glob@4.5.3 │ │ │ └─┬ minimatch@2.0.10 │ │ │ └─┬ brace-expansion@1.1.3 │ │ │ ├── balanced-match@0.3.0 │ │ │ └── concat-map@0.0.1 │ │ ├─┬ minimatch@1.0.0 │ │ │ ├── lru-cache@2.7.3 │ │ │ └── sigmund@1.0.1 │ │ ├─┬ npmlog@2.0.4 │ │ │ ├── ansi@0.3.1 │ │ │ ├─┬ are-we-there-yet@1.1.2 │ │ │ │ └── delegates@1.0.0 │ │ │ └─┬ gauge@1.2.7 │ │ │ ├─┬ lodash.pad@4.4.0 │ │ │ │ ├── lodash._baseslice@4.0.0 │ │ │ │ ├── lodash._basetostring@4.12.0 │ │ │ │ └── lodash.tostring@4.1.3 │ │ │ ├─┬ lodash.padend@4.5.0 │ │ │ │ ├── lodash._baseslice@4.0.0 │ │ │ │ ├── lodash._basetostring@4.12.0 │ │ │ │ └── lodash.tostring@4.1.3 │ │ │ └─┬ lodash.padstart@4.5.0 │ │ │ ├── lodash._baseslice@4.0.0 │ │ │ ├── lodash._basetostring@4.12.0 │ │ │ └── lodash.tostring@4.1.3 │ │ └─┬ path-array@1.0.1 │ │ └─┬ array-index@1.0.0 │ │ ├─┬ debug@2.2.0 │ │ │ └── ms@0.7.1 │ │ └─┬ es6-symbol@3.0.2 │ │ ├── d@0.1.1 │ │ └─┬ es5-ext@0.10.11 │ │ └── es6-iterator@2.0.0 │ ├── nopt@3.0.6 -> /usr/lib/node_modules/npm/node_modules.bundled/nopt │ ├── normalize-git-url@3.0.2 -> /usr/lib/node_modules/npm/node_modules.bundled/normalize-git-url │ ├─┬ normalize-package-data@2.3.5 -> /usr/lib/node_modules/npm/node_modules.bundled/normalize-package-data │ │ └─┬ is-builtin-module@1.0.0 │ │ └── builtin-modules@1.1.1 │ ├── npm-cache-filename@1.0.2 -> /usr/lib/node_modules/npm/node_modules.bundled/npm-cache-filename │ ├── npm-install-checks@3.0.0 -> /usr/lib/node_modules/npm/node_modules.bundled/npm-install-checks │ ├── npm-package-arg@4.2.0 -> /usr/lib/node_modules/npm/node_modules.bundled/npm-package-arg │ ├─┬ npm-registry-client@7.1.2 -> /usr/lib/node_modules/npm/node_modules.bundled/npm-registry-client │ │ ├─┬ concat-stream@1.5.1 │ │ │ ├─┬ readable-stream@2.0.6 │ │ │ │ ├── core-util-is@1.0.2 │ │ │ │ ├── isarray@1.0.0 │ │ │ │ ├── process-nextick-args@1.0.7 │ │ │ │ ├── string_decoder@0.10.31 │ │ │ │ └── util-deprecate@1.0.2 │ │ │ └── typedarray@0.0.6 │ │ └── retry@0.8.0 │ ├── npm-user-validate@0.1.4 -> /usr/lib/node_modules/npm/node_modules.bundled/npm-user-validate │ ├─┬ npmlog@3.1.2 -> /usr/lib/node_modules/npm/node_modules.bundled/npmlog │ │ ├─┬ are-we-there-yet@1.1.2 │ │ │ └── delegates@1.0.0 │ │ ├── console-control-strings@1.1.0 │ │ ├─┬ gauge@2.6.0 │ │ │ ├── has-color@0.1.7 │ │ │ ├── object-assign@4.1.0 │ │ │ ├── signal-exit@3.0.0 │ │ │ ├─┬ string-width@1.0.1 │ │ │ │ ├─┬ code-point-at@1.0.0 │ │ │ │ │ └── number-is-nan@1.0.0 │ │ │ │ └─┬ is-fullwidth-code-point@1.0.0 │ │ │ │ └── number-is-nan@1.0.0 │ │ │ └── wide-align@1.1.0 │ │ └── set-blocking@2.0.0 │ ├── once@1.3.3 -> /usr/lib/node_modules/npm/node_modules.bundled/once │ ├── opener@1.4.1 -> /usr/lib/node_modules/npm/node_modules.bundled/opener │ ├─┬ osenv@0.1.3 -> /usr/lib/node_modules/npm/node_modules.bundled/osenv │ │ ├── os-homedir@1.0.1 │ │ └── os-tmpdir@1.0.1 │ ├── path-is-inside@1.0.1 -> /usr/lib/node_modules/npm/node_modules.bundled/path-is-inside │ ├─┬ read@1.0.7 -> /usr/lib/node_modules/npm/node_modules.bundled/read │ │ └── mute-stream@0.0.5 │ ├── read-cmd-shim@1.0.1 -> /usr/lib/node_modules/npm/node_modules.bundled/read-cmd-shim │ ├─┬ read-installed@4.0.3 -> /usr/lib/node_modules/npm/node_modules.bundled/read-installed │ │ └── util-extend@1.0.3 │ ├─┬ read-package-json@2.0.4 -> /usr/lib/node_modules/npm/node_modules.bundled/read-package-json │ │ ├─┬ glob@6.0.4 │ │ │ ├─┬ minimatch@3.0.0 │ │ │ │ └─┬ brace-expansion@1.1.3 │ │ │ │ ├── balanced-match@0.3.0 │ │ │ │ └── concat-map@0.0.1 │ │ │ └── path-is-absolute@1.0.0 │ │ └─┬ json-parse-helpfulerror@1.0.3 │ │ └── jju@1.3.0 │ ├── read-package-tree@5.1.5 -> /usr/lib/node_modules/npm/node_modules.bundled/read-package-tree │ ├─┬ readable-stream@2.1.4 -> /usr/lib/node_modules/npm/node_modules.bundled/readable-stream │ │ ├── buffer-shims@1.0.0 │ │ ├── core-util-is@1.0.2 │ │ ├── isarray@1.0.0 │ │ ├── process-nextick-args@1.0.7 │ │ ├── string_decoder@0.10.31 │ │ └── util-deprecate@1.0.2 │ ├── readdir-scoped-modules@1.0.2 -> /usr/lib/node_modules/npm/node_modules.bundled/readdir-scoped-modules │ ├── realize-package-specifier@3.0.3 -> /usr/lib/node_modules/npm/node_modules.bundled/realize-package-specifier │ ├─┬ request@2.72.0 -> /usr/lib/node_modules/npm/node_modules.bundled/request │ │ ├── aws-sign2@0.6.0 │ │ ├─┬ aws4@1.3.2 │ │ │ └─┬ lru-cache@4.0.1 │ │ │ ├── pseudomap@1.0.2 │ │ │ └── yallist@2.0.0 │ │ ├─┬ bl@1.1.2 │ │ │ └─┬ readable-stream@2.0.6 │ │ │ ├── core-util-is@1.0.2 │ │ │ ├── isarray@1.0.0 │ │ │ ├── process-nextick-args@1.0.6 │ │ │ ├── string_decoder@0.10.31 │ │ │ └── util-deprecate@1.0.2 │ │ ├── caseless@0.11.0 │ │ ├─┬ combined-stream@1.0.5 │ │ │ └── delayed-stream@1.0.0 │ │ ├── extend@3.0.0 │ │ ├── forever-agent@0.6.1 │ │ ├─┬ form-data@1.0.0-rc4 │ │ │ └── async@1.5.2 │ │ ├─┬ har-validator@2.0.6 │ │ │ ├─┬ chalk@1.1.3 │ │ │ │ ├── ansi-styles@2.2.1 │ │ │ │ ├── escape-string-regexp@1.0.5 │ │ │ │ ├── has-ansi@2.0.0 │ │ │ │ └── supports-color@2.0.0 │ │ │ ├─┬ commander@2.9.0 │ │ │ │ └── graceful-readlink@1.0.1 │ │ │ ├─┬ is-my-json-valid@2.13.1 │ │ │ │ ├── generate-function@2.0.0 │ │ │ │ ├─┬ generate-object-property@1.2.0 │ │ │ │ │ └── is-property@1.0.2 │ │ │ │ ├── jsonpointer@2.0.0 │ │ │ │ └── xtend@4.0.1 │ │ │ └─┬ pinkie-promise@2.0.1 │ │ │ └── pinkie@2.0.4 │ │ ├─┬ hawk@3.1.3 │ │ │ ├── boom@2.10.1 │ │ │ ├── cryptiles@2.0.5 │ │ │ ├── hoek@2.16.3 │ │ │ └── sntp@1.0.9 │ │ ├─┬ http-signature@1.1.1 │ │ │ ├── assert-plus@0.2.0 │ │ │ ├─┬ jsprim@1.2.2 │ │ │ │ ├── extsprintf@1.0.2 │ │ │ │ ├── json-schema@0.2.2 │ │ │ │ └── verror@1.3.6 │ │ │ └─┬ sshpk@1.7.4 │ │ │ ├── asn1@0.2.3 │ │ │ ├─┬ dashdash@1.13.0 │ │ │ │ └── assert-plus@1.0.0 │ │ │ ├── ecc-jsbn@0.1.1 │ │ │ ├── jodid25519@1.0.2 │ │ │ ├── jsbn@0.1.0 │ │ │ └── tweetnacl@0.14.3 │ │ ├── is-typedarray@1.0.0 │ │ ├── isstream@0.1.2 │ │ ├── json-stringify-safe@5.0.1 │ │ ├─┬ mime-types@2.1.10 │ │ │ └── mime-db@1.22.0 │ │ ├── node-uuid@1.4.7 │ │ ├── oauth-sign@0.8.1 │ │ ├── qs@6.1.0 │ │ ├── stringstream@0.0.5 │ │ ├── tough-cookie@2.2.2 │ │ └── tunnel-agent@0.4.2 │ ├── retry@0.9.0 -> /usr/lib/node_modules/npm/node_modules.bundled/retry │ ├── rimraf@2.5.2 -> /usr/lib/node_modules/npm/node_modules.bundled/rimraf │ ├── semver@5.1.0 -> /usr/lib/node_modules/npm/node_modules.bundled/semver │ ├── sha@2.0.1 -> /usr/lib/node_modules/npm/node_modules.bundled/sha │ ├── slide@1.1.6 -> /usr/lib/node_modules/npm/node_modules.bundled/slide │ ├── sorted-object@2.0.0 -> /usr/lib/node_modules/npm/node_modules.bundled/sorted-object │ ├── strip-ansi@3.0.1 -> /usr/lib/node_modules/npm/node_modules.bundled/strip-ansi │ ├─┬ tar@2.2.1 -> /usr/lib/node_modules/npm/node_modules.bundled/tar │ │ └── block-stream@0.0.8 │ ├── text-table@0.2.0 -> /usr/lib/node_modules/npm/node_modules.bundled/text-table │ ├── uid-number@0.0.6 -> /usr/lib/node_modules/npm/node_modules.bundled/uid-number │ ├── umask@1.1.0 -> /usr/lib/node_modules/npm/node_modules.bundled/umask │ ├─┬ unique-filename@1.1.0 -> /usr/lib/node_modules/npm/node_modules.bundled/unique-filename │ │ └── unique-slug@2.0.0 │ ├── unpipe@1.0.0 -> /usr/lib/node_modules/npm/node_modules.bundled/unpipe │ ├─┬ validate-npm-package-license@3.0.1 -> /usr/lib/node_modules/npm/node_modules.bundled/validate-npm-package-license │ │ ├─┬ spdx-correct@1.0.2 │ │ │ └── spdx-license-ids@1.2.0 │ │ └─┬ spdx-expression-parse@1.0.2 │ │ ├── spdx-exceptions@1.0.4 │ │ └── spdx-license-ids@1.2.0 │ ├─┬ validate-npm-package-name@2.2.2 -> /usr/lib/node_modules/npm/node_modules.bundled/validate-npm-package-name │ │ └── builtins@0.0.7 │ ├─┬ which@1.2.10 -> /usr/lib/node_modules/npm/node_modules.bundled/which │ │ └── isexe@1.1.2 │ ├── wrappy@1.0.2 -> /usr/lib/node_modules/npm/node_modules.bundled/wrappy │ └── write-file-atomic@1.1.4 -> /usr/lib/node_modules/npm/node_modules.bundled/write-file-atomic └── which@1.0.5
为什么Specs在两个平台上表现不同?
我正在使用grunt(和yeoman),我通过这个命令添加了bower组件:bower install `package_name` --save
这将自动将它们添加到index.html和karma.conf.js中.但是有一个名为adm-dtp的组件没有自动添加(即使我使用上面的命令).我手动将其添加到karma.conf.js,一切正常.
因此,通用答案应该检查karma.conf.js并确保所有内容都正确加载.这link是相关的.如果你使用grunt和yeoman在//结束凉亭之后添加它们,因为在运行grunt测试后该部分将被覆盖.
karma.conf.js:
config.set({ // enable / disable watching file and executing tests whenever any file changes autoWatch: true, // base path, that will be used to resolve files and exclude basePath: '../', // testing framework to use (jasmine/mocha/qunit/...) // as well as any additional frameworks (requirejs/chai/sinon/...) frameworks: [ 'jasmine' ], // list of files / patterns to load in the browser files: [ 'app/scripts/persian.min.js', // bower:js 'bower_components/jquery/dist/jquery.js', 'bower_components/angular/angular.js', 'bower_components/bootstrap/dist/js/bootstrap.js', 'bower_components/angular-animate/angular-animate.js', 'bower_components/angular-aria/angular-aria.js', 'bower_components/angular-cookies/angular-cookies.js', 'bower_components/angular-messages/angular-messages.js', 'bower_components/angular-resource/angular-resource.js', 'bower_components/angular-route/angular-route.js', 'bower_components/angular-sanitize/angular-sanitize.js', 'bower_components/angular-touch/angular-touch.js', 'bower_components/angularLocalStorage/dist/angularLocalStorage.min.js', 'bower_components/ngmap/build/scripts/ng-map.js', 'bower_components/angular-loading-bar/build/loading-bar.js', 'bower_components/angular-persian/dist/angularpersian.js', 'bower_components/caman/dist/caman.min.js', 'bower_components/caman/dist/caman.full.min.js', 'bower_components/angular-xeditable/dist/js/xeditable.js', 'bower_components/moment/moment.js', 'bower_components/angular-mocks/angular-mocks.js', // endbower // AFTER END BOWER ADDING BOWER COMPONENTS NOT ADDED AUTOMATICLY: 'bower_components/adm-dtp/dist/ADM-dateTimePicker.min.js', 'app/scripts/**/*.js', 'test/mock/**/*.js', 'test/spec/**/*.js', 'app/scripts/controllers/bootstrapController.js' ], // list of files / patterns to exclude exclude: [ ], // web server port port: 8082, // Start these browsers, currently available: // - Chrome // - ChromeCanary // - Firefox // - Opera // - Safari (only Mac) // - PhantomJS // - IE (only Windows) browsers: [ 'PhantomJS', ], // Which plugins to enable plugins: [ 'karma-phantomjs-launcher', 'karma-jasmine' ], // Continuous Integration mode // if true, it capture browsers, run tests and exit singleRun: false, colors: true, // level of logging // possible values: LOG_DISABLE || LOG_ERROR || LOG_WARN || LOG_INFO || LOG_DEBUG logLevel: config.LOG_DISABLE, // Uncomment the following lines if you are using grunt's server to run the tests proxies: { '/': 'http://localhost:9000/' }, // URL root prevent conflicts with the site root // urlRoot: '_karma_' });