在 PhantomJS 上 运行 时,业力茉莉花测试失败
Karma jasmine test fails when running on PhantomJS
我使用的 javascript 测试在我使用 Karma Chrome 启动器时通过了,但是当我使用 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(最新)
没有成功。
破坏我的代码的是我的 angular 模板中的重复键。哇。啊,成为网络开发人员的乐趣。奇怪的是,我的旧代码在 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>
我使用的 javascript 测试在我使用 Karma Chrome 启动器时通过了,但是当我使用 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(最新) 没有成功。
破坏我的代码的是我的 angular 模板中的重复键。哇。啊,成为网络开发人员的乐趣。奇怪的是,我的旧代码在 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>