我已经使用 TS 运行我的项目几个月了,一直到版本 2.2.2 都没有出现问题。 TypeScript 2.3 最近发布了,我决定更新到最新的补丁版本(v2.3.2)。
不幸的是,这是我的 PhantomJS(运行我的测试)开始崩溃的地方。我还运行了 Wallaby,它在这个最新版本中没有任何问题,并且构建和运行我的应用程序似乎也工作正常。
我尝试降级补丁版本,直到它再次开始工作,并且似乎从 v2.3.0 升级到 v2.3.1 开始出现问题。 在 Github 上比较这两个版本让我可以滚动浏览许多更改,但我似乎找不到此补丁版本更新的更改日志(不适用于列出 here 的整个 v2.3 版本更新,因为 v2.3.0 运行良好)。所以我真的很想知道发生了什么变化(最好是发生了什么变化可能对 PhantomJS 产生影响)。
如果有人感兴趣的话我得到的 PhantomJS 错误:
START:
03 05 2017 09:34:54.160:INFO [karma]: Karma v1.6.0 server started at http://0.0.0.0:9876/
03 05 2017 09:34:54.162:INFO [launcher]: Launching browser PhantomJS with unlimited concurrency
03 05 2017 09:34:54.167:INFO [launcher]: Starting browser PhantomJS
03 05 2017 09:34:55.058:INFO [PhantomJS 2.1.1 (Mac OS X 0.0.0)]: Connected on socket lYV_7fbawdBMHcp0AAAA with id 4050484
03 05 2017 09:35:05.061:WARN [PhantomJS 2.1.1 (Mac OS X 0.0.0)]: Disconnected (1 times), because no message in 10000 ms.
PhantomJS 2.1.1 (Mac OS X 0.0.0) ERROR
Disconnected, because no message in 10000 ms.
Finished in 10.005 secs / 0 secs @ 09:35:05 GMT+0200 (CEST)
[09:35:05] 'test' errored after 12 s
[09:35:05] Error: Failed 1 tests.
at karma.Server.failCount (.../build/tasks/test.js:15:26)
at removeAllListeners (.../node_modules/karma/lib/server.js:380:7)
at Server.<anonymous> (.../node_modules/karma/lib/server.js:391:9)
at Server.g (events.js:286:16)
at emitNone (events.js:91:20)
at Server.emit (events.js:185:7)
at emitCloseNT (net.js:1549:8)
at _combinedTickCallback (internal/process/next_tick.js:71:11)
at process._tickCallback (internal/process/next_tick.js:98:9)
npm ERR! Test failed. See above for more details.
编辑
对 v2.3.0 转译源和 v2.3.1 转译源进行比较,结果完全没有。
编辑2
刚刚尝试使用 v2.3.3 运行它,但得到了相同的结果。
编辑3
尝试使用 ChromeHeadless 而不是 PhantomJS,但同样失败了。看来 PhantomJS 确实不是这里的问题。
编辑4
尝试使用 Karma 1.7.0。仍然没有变化。
最佳答案
您可以检查转译输出以了解工作和非工作之间的差异。
关于TypeScript v2.3.1 破坏了单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43754708/