Vitest:如何增加console.log的深度?



我正在使用Vitest,在我的测试中,我想要控制台日志输出一些东西。但是如果我像这样记录:

console.log({ a: { b: { c: { d: { e: 1 } } } } });

我得到这样的输出:

{ a: { b: { c: [Object] } } }

console.dir()也是如此。是否有任何方法可以增加在Vitest对象记录的深度?我正在使用JSON.stringify()来解决它,但将其格式化为默认值会有所帮助。

您可以这样做,而不需要额外的库:

function logAllParameters(obj, prefix = '') {
for (let key in obj) {
if (typeof obj[key] === 'object') {
logAllParameters(obj[key], prefix + key + '.');
} else {
console.log(prefix + key + ':', obj[key]);
}
}
}
const obj = { a: { b: { c: { d: { e: 1 } } } } };
logAllParameters(obj);

从这个问题:

使用250R回答:

您需要使用util.inspect():

const util = require('util')
console.log(util.inspect(myObject, {showHidden: false, depth: null, colors: true}))
// alternative shortcut
console.log(util.inspect(myObject, false, null, true /* enable colors */))

输出:

{ a: 'a',  b: { c: 'c', d: { e: 'e', f: { g: 'g', h: { i: 'i' } } } } }

或者你可以在那个问题页找到做同样事情的其他方法;你可以挑你觉得舒服的。


但如果我是你,我会选择:

console.dir(myObject, { depth: null });

因为:

  1. console的内置功能,所以不需要依赖。
  2. 支持彩色化。
  3. 无硬编码函数

相关内容

  • 没有找到相关文章

最新更新