>背景:我正在做一个 Angular 项目,使用 Jasmine + Karma 来运行单元测试。
问题: 我有一个测试,A。
当我在 A 的测试套件上使用fdescribe
时,A通过,所有其他测试都被跳过。
但是,当我仅使用describe
运行 A 的测试套件时,它会失败。
此外,我有一个测试,B,失败了。
这种情况已经发生了两次:
我将fdescribe
更改为 A 上的describe
- 没有其他测试fdescribe
. 我把xdescribe
放在 B 的测试套件上。
-
我运行一次测试:测试在达到时完全终止测试 B,失败。
-
我第二次运行测试:相同的行为。
-
我第三次运行测试:我的测试一直运行,并且
- A 失败(如上所述(
- B 报告为已跳过(但打印出相同的错误消息(
我是否错过了一些fdescribe
和xdescribe
的细微差别?我在xdescribe
内的测试仍然(有时(失败,并导致以后的测试无法运行。同时,通过fdescribe
的测试在删除f
时失败。
如果相关,则两个测试都失败并显示错误:
"Uncaught SyntaxError: Failed to execute 'open' on 'XMLHttpRequest': Invalid URL thrown".
当然,最终目标是修复此错误,但是当它根据套件前缀不断消失时,这很难做到(可以肯定的是,弄清楚前缀发生了什么是这个问题的重点(。
我很乐意包含更多信息,但我不确定首先包含哪些信息会有所帮助。此外,我的情况是我真的无法分享有关代码本身的详细信息,如果需要有关此的非平凡详细信息,不幸的是,我可能无法提供它们。
我遇到了同样的问题。我发现很可能有几件事之一正在发生。
不同步的东西没有得到正确处理,因此数据有时设置正确,有时则设置不正确。
如果使用本地存储,则异步数据也可能存在相同的问题。
测试没有正确隔离,并且在一个测试中发生了一些更改,然后影响了以后的测试。单独运行测试可消除这种情况。