首页 > 解决方案 > QUnit 测试套件完成时登录到终端?

问题描述

当我的测试套件完成时,我需要输出一些统计信息,即有关在测试执行期间收集的测试的元信息。

我正在尝试这个:

QUnit.done(() => console.log("some meta info here"))

这在我在浏览器中运行测试时有效。

但是当我在终端中运行测试时,console.log不会显示输出。

可能有一些调试标志,但它会启用所有 console.log消息并严重污染输出。

相反,我需要向终端输出一条特定消息,以便将其记录到 CI。

在测试执行期间发送的PSconsole.log消息似乎成功进入终端。

PPS 在 Ember CLI 应用程序中使用 QUnit,针对 Chrome 无头。

标签: javascriptember-cliqunitember-qunittestem

解决方案


这是一个棘手的问题,因为我从来不需要像这样与 QUnit 进行交互,但这里是我每一步的发现:

尝试1:

在此处输入图像描述 这是一个奇怪的错误,我以为我正在传递一个回调函数:-\

尝试2:

在此处输入图像描述 在查找 的文档后Qunit.log,我可以看到我用错了。切换到 console.log 会显示开始消息,但不会显示结束消息。

尝试 3:

在此处输入图像描述 moduleDone 会在最后打印一些东西——但它也会在你每次使用这个词时打印module(在里面的所有东西都运行完之后)。所以,我想如果 QUnit.done 永远不会工作,你可以跟踪启动的模块数量和完成的模块,确保每个启动的模块都完成,如果最后这个数字是 0,你的测试套房做好了吗?

尝试 4

在此处输入图像描述 事实证明,如果您想知道最外面的模块已完成,这实际上是有帮助的,因为看起来多个测试没有并行运行(这对于测试稳定性可能更好)。

尝试 5

https://github.com/qunitjs/qunit/issues/1308

看起来 testem 适配器有问题:(


推荐阅读