gpt4 book ai didi

javascript - 我可以在 mocha 输出中隐藏失败详细信息吗?

转载 作者:行者123 更新时间:2023-12-05 00:28:01 25 4
gpt4 key购买 nike

有时在运行一组 mocha 测试时,我并不关心失败的细节;我只想要一个通过或失败的测试列表。我试过几个记者,但他们似乎都输出了失败的细节。我喜欢默认的规范报告器结构,但我找不到如何隐藏细节。

这是一个说明性示例。对于这些测试:

const assert = require('assert')
describe('test test', function() {
it('should pass', function() {

})
it('should fail', function() {
assert(false)
})
})

这给出了这样的输出:
  test test
✓ should pass
1) should fail


1 passing (9ms)
1 failing

1) test test
should fail:

AssertionError [ERR_ASSERTION]: false == true
+ expected - actual

-false
+true

at Context.<anonymous> (test-solution.js:69:5)

但我想要的只是这个:
  test test
✓ should pass
1) should fail

1 passing (9ms)
1 failing

我是否遗漏了一些明显的东西,或者这些细节不是我可以压制的?

最佳答案

我也想隐藏这一点,对我来说,大多数默认记者似乎也不是那么好。每一条无用的线路都会花费我们时间。在我看来,自定义输出应该非常简单。
构建自己的自定义报告器是您问题的正确答案。然而 - 因为这让我很长时间 - 这里有一个非常简短和简单的选择:禁用记者并记录一些事件日志。

const Mocha = require('mocha');
let file = './devtest.js';
let passCount = 0;
let errors = [];

// start with disabled reporter
const mocha = new Mocha({ reporter: function () {} });
mocha.addFile(file);
console.log('\n===== start mocha file ' + file);

mocha.run()
.on('pass', function (test) {
passCount++;
logSuccess(test.title);
})
.on('fail', function (test, err) {
errors.push({test, err});
logError(test.title);
})
.on('end', function () {
console.log();
console.log(' -------------------------');
logSuccess(passCount + ' tests passed');
logError(errors.length + ' tests failed');
// do something here - like:
// callback(errors)
});

function logSuccess (str) {
console.log('\u001b[32m ✓ \u001b[0m\u001b[90m' + str + '\u001b[0m');
}
function logError (str) {
console.log('\u001b[31m ✖ ' + str + '\u001b[0m');
}

enter image description here
当然,与标准报告器相比,它有一些功能较少,但扩展非常简单 - 你拥有所有错误和数据。所以它非常快。
也许其他任何人都可以为此发布一个非常简单的工作示例,即自定义报告器 - 对我来说,自定义报告器破坏了我的控制台输出,我对更多调试不感兴趣。

关于javascript - 我可以在 mocha 输出中隐藏失败详细信息吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51032718/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com