在Angular上运行karma测试时,“未捕获[对象对象]”

问题描述 投票:2回答:1

在为我的应用程序运行单元测试时,我正在为这个奇怪的错误而战。

zone.js:260 Uncaught [object Object] thrown
Zone.runTask @ zone.js:260
ZoneTask.invoke @ zone.js:423

我不知道哪个测试失败导致控制台只丢弃该错误。它不是在我的本地,在没有任何问题的情况下运行测试。

在那次错误之前,我遇到了“脚本错误”错误,但我用ChromeHeadless的--disable-web-security标志解决了这个问题。我不知道它是否与这个新错误有关。

我的locale和遥控器都是linux。

angular jasmine karma-runner google-chrome-headless
1个回答
2
投票

您可能在远程或不同版本的全局npm软件包上安装了不同版本的模块。任何不匹配的依赖项版本都会在任一计算机上产生不同的结果。

清除两台机器上的npm缓存:

npm cache clean

在两台机器上重新安装node_modules

rm -fr node_modules
npm install

验证每台计算机上的本地npm包是否相同

npm list --depth=0

验证全局包版本是否相同。您可以列出这样的全局包

 npm list -g --depth=0

一旦你拥有一切相同的东西。您应该在两台计算机上看到相同的结果。

首先尝试运行业力

  karma start

如果可行,则接下来分别运行每个测试。

  karma run -- --grep=search_string

如果错误阻止你开始业力。检查启动脚本以获取测试,并查看是否可以从Angular应用程序中注释掉模块。继续减少依赖关系,直到你运行Karma。慢慢重新介绍依赖关系,直到找到罪犯。

© www.soinside.com 2019 - 2024. All rights reserved.