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

时间:2017-12-18 18:01:24

标签: angular jasmine karma-runner google-chrome-headless

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

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

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

在出现错误之前,我遇到了#34;脚本错误"错误,但我用ChromeHeadless的--disable-web-security标志解决了它。我不知道它是否与这个新错误有关。

我的locale和遥控器都是linux。

1 个答案:

答案 0 :(得分: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。慢慢重新介绍依赖关系,直到找到罪犯。