Angular &引用;未捕获的[对象]”;在角上运行业力测试时

Angular &引用;未捕获的[对象]”;在角上运行业力测试时,angular,jasmine,karma-runner,google-chrome-headless,Angular,Jasmine,Karma Runner,Google Chrome Headless,我在为我的应用程序运行单元测试时遇到了这个奇怪的错误 zone.js:260 Uncaught [object Object] thrown Zone.runTask @ zone.js:260 ZoneTask.invoke @ zone.js:423 我不知道哪个测试失败,因为控制台只会删除该错误。它不是在我的本地出现的,在那里测试运行没有任何问题 在那个错误之前,我遇到了“脚本错误”错误,但我用ChromeHeadless的--disable-web安全标志解决了这个问题。我不知道这是否

我在为我的应用程序运行单元测试时遇到了这个奇怪的错误

zone.js:260 Uncaught [object Object] thrown
Zone.runTask @ zone.js:260
ZoneTask.invoke @ zone.js:423
我不知道哪个测试失败,因为控制台只会删除该错误。它不是在我的本地出现的,在那里测试运行没有任何问题

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


远程设备上的我的语言环境都是linux。

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

清除两台计算机上的npm缓存:

npm cache clean
rm -fr node_modules
npm install
在两台机器上重新安装
节点\u模块

npm cache clean
rm -fr node_modules
npm install
验证每台机器上的本地npm包是否相同

npm list --depth=0
验证全局包版本是否相同。您可以这样列出全局包

 npm list -g --depth=0
一旦你拥有一切都一样。您应该在两台机器上看到相同的结果

从试着运行业力开始

  karma start
如果可行,接下来分别运行每个测试

  karma run -- --grep=search_string

如果错误阻止你开始业力。检查测试的启动脚本,看看是否可以从Angular应用程序中注释出模块。继续减少依赖,直到你得到业力运行。慢慢地重新引入依赖项,直到找到罪犯。

你发现了吗?@Justin,我终于解决了。这似乎是MockBackend模块的一个问题。。。如果我不使用它,错误不会出现。我只是使用了另一种方法来测试http调用。我们还跟踪了http请求的问题。请参阅完整答案: