首页 > 解决方案 > Jasmine Angular 测试有时通过有时不通过,具体取决于描述前缀

问题描述

背景:我正在开发一个 Angular 项目,使用 Jasmine + Karma 运行单元测试。

问题:我有一个测试,A。

当我fdescribe在 A 的测试套件上使用时, A pass和所有其他测试都被跳过。

但是,当我使用 just 运行 A 的测试套件时describe,它失败了。


此外,我有一个测试 B,它失败了。

这已经发生了两次:

我更改fdescribedescribeon A- 没有其他测试fdescribe。我穿上xdescribe了 B 的测试套件。


我错过了fdescribeand的一些细微差别xdescribe吗?我的测试xdescribe仍然(有时)失败,并导致以后的测试无法运行。同时,当删除时,通过的测试fdescribe失败。f

如果相关,则两个测试都失败并出现错误:

"Uncaught SyntaxError: Failed to execute 'open' on 'XMLHttpRequest': Invalid URL thrown".

当然,最终目标是修复此错误,但事实证明,当它根据套件前缀不断消失时,这很难做到(可以肯定的是,弄清楚前缀发生了什么是这个问题的重点)。

我很高兴包含更多信息,但我不确定首先包含哪些信息会有所帮助。此外,我确实无法分享有关代码本身的详细信息,如果需要有关这些的重要细节,很遗憾我可能无法提供它们。

标签: angularunit-testingjasminekarma-runner

解决方案


我遇到了同样的问题。我发现可能发生了几件事之一。

  1. 一些异步的东西没有被正确处理,因此数据有时被正确设置,而在其他时候则不是。

  2. 如果您使用本地存储,异步数据也可能存在同样的问题。

  3. 测试没有正确隔离,并且在一个测试中发生了一些变化,然后影响了以后的测试。单独运行测试可以消除这种情况。


推荐阅读