2017-06-16 89 views
0

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

我在理解3个失败测试的堆栈跟踪时遇到了最多麻烦。错误提示SyntaxError: Unexpected token ',' (line 2) [email protected][native code]。我不知道该怎么做,或者如何用断点进行调试,因为它正在谈论本地代码。我试过的是以下。

PhantomJS 2.1.1 (Mac OS X 0.0.0) paymentForm completes payment, displays thank you FAILED 
    SyntaxError: Unexpected token ',' (line 2) 
    [email protected][native code] 
    [email protected]_components/angular/angular.js:14539:27 
    [email protected]_components/angular/angular.js:15422:36 
    [email protected]_components/angular/angular.js:15587:44 
    [email protected]_components/angular/angular.js:16800:25 
    [email protected]_components/angular/angular.js:24221:21 
    bower_components/angular/angular.js:1266:23 
    [email protected]_components/angular/angular.js:9757:15 
    [email protected]_components/angular/angular.js:9156:23 
    [email protected]_components/angular/angular.js:8459:23 
    [email protected]_components/angular/angular.js:9151:35 
    bower_components/angular/angular.js:9496:36 
    [email protected]_components/angular/angular.js:16104:30 
    bower_components/angular/angular.js:16120:39 
    [email protected]_components/angular/angular.js:17378:28 
    [email protected]_components/angular/angular.js:17191:36 
    [email protected]_components/angular-mocks/angular-mocks.js:1791:45 
    src/app/payment/payment.directive.spec.js:163:25 

我尝试:

  • v4.2.6和6.10.2之间改变并重新安装下面
  • 包升级故宫包:
    • 因缘0.12.31 - > 1.3.0,
    • karma-phantomjs-launcher 1.0.0 - > 1.04(latest) 没有成功。

回答

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>