如何向 Mocha 输出报告添加文本

ber*_*kes 5 javascript mocha.js

我想跟踪一些值,例如时间和gasused。我可以使用 来返回它console.log(),收集它,不是问题。但想要一种比 . 更强大、更好的方法来报告它console.log()

一个简单的例子:

it("I can reserve up to 10.000", async() => {
  let instance = await FullCoupon.new(10000);
  // in reality this is a helper function to collect and output the values.
  var tx = await web3.eth.getTransactionReceipt(instance.transactionHash);
  console.log(tx.gasUsed);
  //...
});
Run Code Online (Sandbox Code Playgroud)

上面的示例将打印内联和未填充的数字(屏幕截图中的 53855): 截屏

我正在寻找的是,最好在测试运行期间收集消息并将其打印在测试输出下方。> No events were emitted例如,我的测试套件打印的地方。

或者,将文本添加到正在打印的测试行,类似于慢测试计时标志,例如(185ms)

Mocha 是否提供 API 来设置要打印到其报告中的消息?

小智 4

当然有办法做到这一点。您可以使用其他支持此类功能的报告器。您可以尝试使用mochaawesome,它具有向单个测试结果添加详细信息的功能。

要在测试报告中添加一些测试,您可以使用如下代码:

const addContext = require('mochawesome/addContext');
Run Code Online (Sandbox Code Playgroud)

从它的内部块:

addContext(<value you want to print>);
Run Code Online (Sandbox Code Playgroud)

要使用此报告器,请--reporter mochawesome在触发测试套件时使用。

这将打印测试报告中的文本。还有其他记者也支持此类功能。希望这能解决问题。