在PhantomJS上运行时,Karma jasmine测试失败

时间:2017-06-16 14:25:55

标签: javascript phantomjs karma-runner karma-jasmine

当我使用Karma Chrome Launcher时,我的javascript测试正在通过,但是当我使用PhantomJS浏览器时它们会失败。这个代码库也使用ES6和babel,但我不认为这是问题,因为我在其他模块中的所有ES6代码都没有破坏。

我在理解我的3次失败测试时遇到的堆栈跟踪时遇到了最大麻烦。错误记录为SyntaxError: Unexpected token ',' (line 2) Function@[native code]。我不知道该如何处理或如何使用断点进行调试,因为它讨论的是本机代码。我试过的是下面的内容。

PhantomJS 2.1.1 (Mac OS X 0.0.0) paymentForm completes payment, displays thank you FAILED
    SyntaxError: Unexpected token ',' (line 2)
    Function@[native code]
    compile@bower_components/angular/angular.js:14539:27
    parse@bower_components/angular/angular.js:15422:36
    $parse@bower_components/angular/angular.js:15587:44
    $watch@bower_components/angular/angular.js:16800:25
    link@bower_components/angular/angular.js:24221:21
    bower_components/angular/angular.js:1266:23
    invokeLinkFn@bower_components/angular/angular.js:9757:15
    nodeLinkFn@bower_components/angular/angular.js:9156:23
    compositeLinkFn@bower_components/angular/angular.js:8459:23
    nodeLinkFn@bower_components/angular/angular.js:9151:35
    bower_components/angular/angular.js:9496:36
    processQueue@bower_components/angular/angular.js:16104:30
    bower_components/angular/angular.js:16120:39
    $eval@bower_components/angular/angular.js:17378:28
    $digest@bower_components/angular/angular.js:17191:36
    flush@bower_components/angular-mocks/angular-mocks.js:1791:45
    src/app/payment/payment.directive.spec.js:163:25

我的尝试:

  • 在v4.2.6和6.10.2之间进行了更改,并重新安装了
  • 下面的软件包
  • 升级了npm包:
    • 业力0.12.31 - > 1.3.0,
    • karma-phantomjs-launcher 1.0.0 - > 1.04(最新) 没有成功。

1 个答案:

答案 0 :(得分:0)

破坏我的代码的是我的角度模板中的重复键。哇。啊,作为一名网络开发者的乐趣。奇怪的是,我的旧代码并没有在Chrome,Firefox或Safari中破解。

<div
  class="slds-spinner"
  ng-class="{
    'slds-spinner--small': size === 'small',
    'slds-spinner--small': size === 'medium' || !size,
    'slds-spinner--large': size === 'large',
    'slds-spinner--inverse': inverse === 'true'
  }"
  aria-hidden="false"
  role="alert">

  <div class="slds-spinner__dot-a"></div>
  <div class="slds-spinner__dot-b"></div>
</div>

当我把它更改为:

<!-- No more dupe keys -->
<div
  class="slds-spinner"
  ng-class="{
    'slds-spinner--small': size === 'small' || !size,
    'slds-spinner--medium': size === 'medium',
    'slds-spinner--large': size === 'large',
    'slds-spinner--inverse': inverse === 'true'
  }"
  aria-hidden="false"
  role="alert">

  <div class="slds-spinner__dot-a"></div>
  <div class="slds-spinner__dot-b"></div>
</div>