javascript - QUnit 测试套件完成时登录到终端?
问题描述
当我的测试套件完成时,我需要输出一些统计信息,即有关在测试执行期间收集的测试的元信息。
我正在尝试这个:
QUnit.done(() => console.log("some meta info here"))
这在我在浏览器中运行测试时有效。
但是当我在终端中运行测试时,console.log
不会显示输出。
可能有一些调试标志,但它会启用所有 console.log
消息并严重污染输出。
相反,我需要向终端输出一条特定消息,以便将其记录到 CI。
在测试执行期间发送的PSconsole.log
消息似乎成功进入终端。
PPS 在 Ember CLI 应用程序中使用 QUnit,针对 Chrome 无头。
解决方案
这是一个棘手的问题,因为我从来不需要像这样与 QUnit 进行交互,但这里是我每一步的发现:
尝试1:
尝试2:
在查找 的文档后Qunit.log
,我可以看到我用错了。切换到 console.log 会显示开始消息,但不会显示结束消息。
尝试 3:
moduleDone 会在最后打印一些东西——但它也会在你每次使用这个词时打印module
(在里面的所有东西都运行完之后)。所以,我想如果 QUnit.done 永远不会工作,你可以跟踪启动的模块数量和完成的模块,确保每个启动的模块都完成,如果最后这个数字是 0,你的测试套房做好了吗?
尝试 4
事实证明,如果您想知道最外面的模块已完成,这实际上是有帮助的,因为看起来多个测试没有并行运行(这对于测试稳定性可能更好)。
尝试 5
https://github.com/qunitjs/qunit/issues/1308
看起来 testem 适配器有问题:(
推荐阅读
- python - Flask Web 应用程序获取“NoneType”对象不可下标
- tfs - 如何将 TFVC 项目从 TFS 迁移到 AZDO?
- c++ - 如何从一个输入中获取 2 个整数值?
- javascript - 简单的联系表格不起作用
- r - gganimate : 更多带有新 api 的帧?
- java - 在另一个类中分配一个类的实例变量的值
- javascript - 通过空行解析节点文件不起作用
- angular - Angular,为什么当我用 0 值绑定事件时我们的局部变量会更新?
- javascript - 如果 Firebase 存储发生错误,我可以恢复上传吗?
- python - 在 xampp htdocs 文件夹中从 php 运行 Python 脚本时出现问题