我使用Yeoman安装了Karma和karma-jasmine,如下所示:
$ npm install -g generator-angular
$ mkdir myapp && cd $_
$ yo angular
考虑到myapp/Bower.json
没有将Jasmine列为Bower安装的前端包之一,但myapp/karma.conf.js
将Jasmine列为默认测试框架,我对命令grunt test
的工作感到惊讶。(gruntfile.js
,bower.json
和karma.conf.js
文件都是作为yo angular
脚手架过程的一部分创建的。)
在仔细检查myapp/node_modules
包后,我意识到karma-jasmine并不指向单独的Jasmine安装。karma-jasmine插件实际上安装了Jasmine:
▼ myapp/
▼ karma_jasmine/
▼ lib/
adapter.js
index.js
jasmine.js
鉴于karma-jasmine说它是“Jasmine测试框架的适配器”,我有点惊讶karma-jasmine没有要求我们单独安装Jasmine。
以下是所使用的各种包版本:
myapp/package.json
contentsmyapp/package.json
Contentsnpm list-g grep yo
命令结果
您可以通过运行以下规范了解您正在使用的jasmine版本:
describe('Test to print out jasmine version', function() {
it('prints jasmine version', function() {
console.log('jasmine-version:');
console.log(jasmine.version || (jasmine.getEnv().versionString && jasmine.getEnv().versionString()));
});
});
然后检查控制台或浏览器中的karma输出。它应该是这样的:
LOG: 'jasmine-version:'
LOG: '2.3.4'
jasmine库包含在jasmine-runner插件中,正如您已经发现的那样。您可以在插件的源代码中找到加载该文件的确切位置:https://github.com/karma-runner/karma-jasmine/blob/master/lib/index.js(第7行)
您可以尝试修改插件以便升级,并向karma发送拉请求(请参见http://karma-runner.github.io/0.10/dev/contributing.html)
它是一个更好的选择,坚持在karma-jasmine的jasmine版本,并更新整个包。您可以使用以下命令获取所有已安装软件包的版本:
npm ls
要获取已安装的全局软件包的版本,请执行以下操作:
npm ls -g
要查看CDN上可用的最新版本,请使用:
npm view karma-jasmine version
在更新之前,您可以使用以下方法在CDN上查看所有版本:
npm view karma-jasmine versions
安装特定版本:
npm install karma-jasmine@~0.2.2
(最新版本为0.2.2)。