angular - Jasmine Angular 测试有时通过有时不通过,具体取决于描述前缀
问题描述
背景:我正在开发一个 Angular 项目,使用 Jasmine + Karma 运行单元测试。
问题:我有一个测试,A。
当我fdescribe
在 A 的测试套件上使用时, A pass和所有其他测试都被跳过。
但是,当我使用 just 运行 A 的测试套件时describe
,它失败了。
此外,我有一个测试 B,它失败了。
这已经发生了两次:
我更改fdescribe
为describe
on A- 没有其他测试fdescribe
。我穿上xdescribe
了 B 的测试套件。
我运行了一次测试:测试在到达测试 B 时完全终止,测试 B 失败。
我第二次运行测试:相同的行为。
我第三次运行测试:我的测试一直运行到,并且
- A 失败(如上所述)
- B 被报告为跳过(但打印出同样的错误信息)
我错过了fdescribe
and的一些细微差别xdescribe
吗?我的测试xdescribe
仍然(有时)失败,并导致以后的测试无法运行。同时,当删除时,通过的测试fdescribe
失败。f
如果相关,则两个测试都失败并出现错误:
"Uncaught SyntaxError: Failed to execute 'open' on 'XMLHttpRequest': Invalid URL thrown".
当然,最终目标是修复此错误,但事实证明,当它根据套件前缀不断消失时,这很难做到(可以肯定的是,弄清楚前缀发生了什么是这个问题的重点)。
我很高兴包含更多信息,但我不确定首先包含哪些信息会有所帮助。此外,我确实无法分享有关代码本身的详细信息,如果需要有关这些的重要细节,很遗憾我可能无法提供它们。
解决方案
我遇到了同样的问题。我发现可能发生了几件事之一。
一些异步的东西没有被正确处理,因此数据有时被正确设置,而在其他时候则不是。
如果您使用本地存储,异步数据也可能存在同样的问题。
测试没有正确隔离,并且在一个测试中发生了一些变化,然后影响了以后的测试。单独运行测试可以消除这种情况。
推荐阅读
- pyautogui - centos Docker中如何使用Pyautogui自动化UI以及pyautogui的linux依赖在哪里下载
- javascript - 映射输入和 setstate onchange
- angular - 如何将 Angular 9 应用程序连接到本地主机上的 API
- r - R中的自动SARIMA模型
- javascript - 使用 Web Push 发送消息,如何发送订阅
- reactjs - 如何保护您的 api 免受受损客户端的侵害
- javascript - 无法使用 fetch 将数据从 react 发布到 nodejs
- python-3.x - 退出 stock.move.line 中的 lot_id,显示来自计算字段的相同值
- javascript - AudioWorklet 返回除节点外的处理数据,如何?
- python - 功能详细视图未重定向到 detailview.html 页面