我已经在我的项目中安装并实施了Karma,但我不确定从哪里开始。
我有一个非常简单的茉莉花规格只是为了测试Karma:
describe 'A suite', ->
it 'contains spec with an expectation', ->
expect(true).toBe true
但是,我从哪里开始?
以下是我在浏览器中访问时的外观:
我的茉莉花规格在哪里?
这是我的控制台的外观:
rake karma:start
INFO [karma]: Karma v0.12.28 server started at http://localhost:9876/_karma_/
INFO [launcher]: Starting browser PhantomJS
INFO [PhantomJS 1.9.8 (Linux)]: Connected on socket FNsNSoQPPqyGCqhqIduv with id 80517079
PhantomJS 1.9.8 (Linux) LOG: 'WARNING: Tried to load angular more than once.'
PhantomJS 1.9.8 (Linux) ERROR
TypeError: 'undefined' is not a function (evaluating 'window.angular.$$csp()')
at /var/lib/gems/1.9.1/gems/rails-assets-angular-1.3.8/app/assets/javascripts/angular/angular.js:26070
INFO [Chrome 39.0.2171 (Linux)]: Connected on socket HbXSzzvaLb-tMVMNIduw with id manual-2655
PhantomJS 1.9.8 (Linux) LOG: 'WARNING: Tried to load angular more than once.'
PhantomJS 1.9.8 (Linux) ERROR
TypeError: 'undefined' is not a function (evaluating 'window.angular.$$csp()')
at /var/lib/gems/1.9.1/gems/rails-assets-angular-1.3.8/app/assets/javascripts/angular/angular.js:26070
Chrome 39.0.2171 (Linux) LOG: 'WARNING: Tried to load angular more than once.'
Chrome 39.0.2171 (Linux) ERROR
Uncaught TypeError: undefined is not a function
at /var/lib/gems/1.9.1/gems/rails-assets-angular-1.3.8/app/assets/javascripts/angular/angular.js:26070
再次,不是我的规范的暗示
这些错误消息是否会导致问题?
Chrome 39.0.2171 (Linux) LOG: 'WARNING: Tried to load angular more than once.'
Chrome 39.0.2171 (Linux) ERROR
Uncaught TypeError: undefined is not a function
at /var/lib/gems/1.9.1/gems/rails-assets-angular-1.3.8/app/assets/javascripts/angular/angular.js:26070
对不起,如果这是模糊的,但我不知道会发生什么。当我访问localhost:9876/_karma_/
我所有的茉莉花规格时,我期待着。我期待PhantomJS在控制台中输出类似的输出,但一切都没有发生!我没有什么可继续的。
任何帮助非常赞赏(肯定会获得赏金)我如何显示我的规格!
答案 0 :(得分:2)
加载角度两次绝对是问题所在。如果你在karma配置文件的files元素中使用了... ** / angular.js,我打赌你的项目中有多个angular.js文件,就是我的情况....你可以检查业力页面并找到源以查看加载了哪些文件。祝你好运!
答案 1 :(得分:0)
是的,你必须解决一个问题。你使用coffescript处理器吗?
你可以克隆https://github.com/yearofmoo/angularjs-seed-repo repo来查看Karma和Protractor测试用例的正确配置。
此外,您可以选择一个整洁的记者而不是process
。请查看 npm repository
答案 2 :(得分:0)
从我收集的内容来看,如果你只需要业力单元测试(不是端到端),那么你可以从业力配置中删除ng-scenario
框架,它应该可以运行
rake karma:start
不可否认,这并不能完全解决问题,但如果你遇到困难,它可能会让你解决问题。