用karma和jasmine测试AngularJS

用karma和jasmine测试AngularJS,angularjs,npm,karma-runner,karma-jasmine,Angularjs,Npm,Karma Runner,Karma Jasmine,我想写一些单元测试。我得到了一个关于angular未定义的错误,所以我想我需要将angular js文件包含在我的其他js文件中。。。为此,我正在尝试npm安装它 { "name": "jzAddons", "description": "A collection of addons for AngularJS", "version": "0.0.1", "private": false, "devDependencies": { "angularjs": "git:

我想写一些单元测试。我得到了一个关于angular未定义的错误,所以我想我需要将angular js文件包含在我的其他js文件中。。。为此,我正在尝试npm安装它

{
  "name": "jzAddons",
  "description": "A collection of addons for AngularJS",
  "version": "0.0.1",
  "private": false,
  "devDependencies": {
    "angularjs": "git://github.com/angular/angular.js.git",
    "grunt": "0.4",
    "grunt-contrib-jshint": "0.7.2",
    "grunt-contrib-stylus": "0.10.0",
    "grunt-contrib-uglify": "0.2.7",
    "grunt-contrib-clean": "0.5.0",
    "grunt-karma": "*",
    "karma": "~0.12",
    "karma-chrome-launcher": "*",
    "karma-jasmine": "*",
    "karma-phantomjs-launcher": "*"
  }
}
但是
npm安装
失败:

> npm install
npm WARN package.json jzAddons@0.0.1 No repository field.
npm http GET https://registry.npmjs.org/grunt-contrib-uglify/0.2.7
npm http GET https://registry.npmjs.org/grunt-contrib-jshint/0.7.2
npm http GET https://registry.npmjs.org/grunt-contrib-stylus/0.10.0
npm http GET https://registry.npmjs.org/grunt-contrib-clean/0.5.0
npm http GET https://registry.npmjs.org/grunt-karma
npm http GET https://registry.npmjs.org/grunt
npm http GET https://registry.npmjs.org/karma-chrome-launcher
npm http GET https://registry.npmjs.org/karma-jasmine
npm http GET https://registry.npmjs.org/karma-phantomjs-launcher
npm http GET https://registry.npmjs.org/karma
npm http 304 https://registry.npmjs.org/grunt-contrib-clean/0.5.0
npm http 304 https://registry.npmjs.org/grunt-contrib-stylus/0.10.0
npm http 304 https://registry.npmjs.org/grunt-contrib-uglify/0.2.7
npm http 304 https://registry.npmjs.org/grunt-contrib-jshint/0.7.2
npm http 304 https://registry.npmjs.org/grunt-karma
npm http 304 https://registry.npmjs.org/karma-jasmine
npm http 304 https://registry.npmjs.org/karma-phantomjs-launcher
npm http 304 https://registry.npmjs.org/karma-chrome-launcher
npm http 304 https://registry.npmjs.org/grunt
npm http 304 https://registry.npmjs.org/karma
npm ERR! Error: No version provided
npm ERR!     at needVersion (/usr/local/lib/node_modules/npm/lib/cache.js:1238:40)
npm ERR!     at /usr/local/lib/node_modules/npm/lib/cache.js:1112:10
npm ERR!     at process._tickCallback (node.js:415:13)
npm ERR! If you need help, you may report this log at:
npm ERR!     <http://github.com/isaacs/npm/issues>
npm ERR! or email it to:
npm ERR!     <npm-@googlegroups.com>

npm ERR! System Darwin 13.1.0
npm ERR! command "node" "/usr/local/bin/npm" "install"
npm ERR! cwd /Users/jzaun/Development/jzAddons
npm ERR! node -v v0.10.18
npm ERR! npm -v 1.3.8
npm ERR! 
npm ERR! Additional logging details can be found in:
npm ERR!     /Users/jzaun/Development/jzAddons/npm-debug.log
npm ERR! not ok code 0
>npm安装
npm WARN package.jsonjzAddons@0.0.1没有存储库字段。
npm http GEThttps://registry.npmjs.org/grunt-contrib-uglify/0.2.7
npm http GEThttps://registry.npmjs.org/grunt-contrib-jshint/0.7.2
npm http GEThttps://registry.npmjs.org/grunt-contrib-stylus/0.10.0
npm http GEThttps://registry.npmjs.org/grunt-contrib-clean/0.5.0
npm http GEThttps://registry.npmjs.org/grunt-karma
npm http GEThttps://registry.npmjs.org/grunt
npm http GEThttps://registry.npmjs.org/karma-chrome-launcher
npm http GEThttps://registry.npmjs.org/karma-jasmine
npm http GEThttps://registry.npmjs.org/karma-phantomjs-launcher
npm http GEThttps://registry.npmjs.org/karma
npm http 304https://registry.npmjs.org/grunt-contrib-clean/0.5.0
npm http 304https://registry.npmjs.org/grunt-contrib-stylus/0.10.0
npm http 304https://registry.npmjs.org/grunt-contrib-uglify/0.2.7
npm http 304https://registry.npmjs.org/grunt-contrib-jshint/0.7.2
npm http 304https://registry.npmjs.org/grunt-karma
npm http 304https://registry.npmjs.org/karma-jasmine
npm http 304https://registry.npmjs.org/karma-phantomjs-launcher
npm http 304https://registry.npmjs.org/karma-chrome-launcher
npm http 304https://registry.npmjs.org/grunt
npm http 304https://registry.npmjs.org/karma
npm错误!错误:没有提供版本
npm错误!在needVersion(/usr/local/lib/node_modules/npm/lib/cache.js:1238:40)
npm错误!在/usr/local/lib/node_modules/npm/lib/cache.js:1112:10
npm错误!在进程中调用(node.js:415:13)
npm错误!如果需要帮助,您可以在以下位置报告此日志:
npm错误!
npm错误!或通过电子邮件发送至:
npm错误!
npm错误!达尔文系统13.1.0
npm错误!命令“node”“/usr/local/bin/npm”“install”
npm错误!cwd/Users/jzaun/Development/jzAddons
npm错误!节点-v v0.10.18
npm错误!npm-V1.3.8
npm错误!
npm错误!其他日志记录详细信息可在以下位置找到:
npm错误/Users/jzaun/Development/jzAddons/npm-debug.log
npm错误!不正常代码0
如何测试角度


有没有任何方法可以使用grunt安装来自bower的东西,而不必生成bower.json?我真的不想处理2包系统:-/除了测试之外,我不需要Angular,而且必须经历所有困难似乎很愚蠢…

不确定它是否对您有帮助,但我有以下几点:

我曾经用它的生成器angular构建一个angular应用程序。 它设置了你需要的一切,包括业力和一些样本测试。 然后你可以与你的应用程序进行比较,看看你遗漏了什么

在my package.json中,我有以下与karma相关的条目:

"karma-ng-scenario": "~0.1.0",
"grunt-karma": "~0.6.2",
"karma-script-launcher": "~0.1.0",
"karma-firefox-launcher": "~0.1.3",
"karma-chrome-launcher": "~0.1.2",
"karma-html2js-preprocessor": "~0.1.0",
"karma-jasmine": "~0.1.5",
"karma-coffee-preprocessor": "~0.1.3",
"karma-requirejs": "~0.2.1",
"karma-phantomjs-launcher": "~0.1.2",
"karma": "~0.10.9",
"karma-ng-html2js-preprocessor": "~0.1.0"
您可以看到到处都有版本号,而您有一个“*”

在我的Karma.conf.js文件中,我引用了:

files: [
  'app/bower_components/angular/angular.js',
  'app/bower_components/angular-mocks/angular-mocks.js',
  'app/bower_components/angular-resource/angular-resource.js',
  'app/bower_components/angular-cookies/angular-cookies.js',
  'app/bower_components/angular-sanitize/angular-sanitize.js',
  'app/bower_components/angular-route/angular-route.js',
  'app/scripts/*.js',
  'app/scripts/**/*.js',
  'test/mock/**/*.js',
  'test/spec/**/*.js'
],
希望这能有所帮助。
如果您需要更多信息,请告诉我。

我从未使用过
“*”
,但根据,它应该可以工作。是否有突破性的改变?问题是我无法让npm安装angular。看来除了npm我还得用bower。皮塔,呃。很抱歉,我可能误解了您的意思,但是使用npm您可以安装节点包,如yo或generator。鲍尔是另一回事。它管理webapp的javascript依赖项。所以angular.js、jquery或bootstrap.css是bower负责的事情。而像karma、grunt、yeoman这样的nodejs模块是使用npm安装的。请参阅:@Justin808(以及未来的读者)我认为使用NPM作为构建工具(gulp或grunt等)、测试工具(karma、jasmine等)的依赖项是正常的,但不是应用程序本身,然后使用bower作为应用程序的依赖项(angular等)。