茉莉花角测试有时会通过,有时不会通过,具体取决于描述的前缀

时间:2019-12-20 17:37:53

标签: angular unit-testing jasmine karma-runner

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

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

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

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


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

这已经发生了两次:

我在A上将fdescribe更改为describe-其他测试都没有fdescribe。 我将xdescribe放在了B的测试套件上。

  • 我运行测试一次:测试完全终止 测试B,该测试失败。

  • 我第二次运行测试:行为相同

  • 我第三次运行测试:我的测试一直运行到整个,然后

    • 失败(如上所述)
    • B被报告为已跳过(但打印出相同的错误消息)

我是否缺少fdescribexdescribe的细微差别?我在xdescribe中进行的测试仍然(有时)失败,并导致以后的测试无法运行。同时,如果删除fdescribe,则通过f的测试将失败。

如果相关,则两个测试均失败并显示错误:

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

当然,最终目标是修复此错误,但是当它根据套件前缀不断消失时,这很难做到(当然,弄清楚前缀的含义是此问题的重点) )。

我很乐意提供更多信息,但是我不确定首先要包含哪些信息。而且,我真的无法共享有关代码本身的详细信息,并且如果需要有关该代码的重要信息,很遗憾,我可能无法提供它们。

1 个答案:

答案 0 :(得分:0)

我遇到了这个完全相同的问题。我发现可能发生了几件事之一。

  1. 异步处理不正确,因此有时数据设置不正确,而其他时候则不正确。

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

  3. 测试未正确隔离,并且在一个测试中进行了某些更改,然后影响以后的测试。单独运行测试可以消除这种情况。