Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 抑制成功mocha测试的控制台日志_Node.js_Mocha.js_Winston - Fatal编程技术网

Node.js 抑制成功mocha测试的控制台日志

Node.js 抑制成功mocha测试的控制台日志,node.js,mocha.js,winston,Node.js,Mocha.js,Winston,运行mocha测试套件时,我的控制台输出被应用程序日志污染。有没有一种简单的方法可以阻止这些日志通过成功的测试?我能够抑制测试环境的所有日志,但我希望看到失败测试的日志。我正在使用as日志库。您可以在运行将日志写入日志文件的测试时设置单独的Winston传输,并在测试失败时显示该文件的内容: afterEach(function() { if (this.currentTest.state !== 'failed') return; console.log( fs.readFileSyn

运行mocha测试套件时,我的控制台输出被应用程序日志污染。有没有一种简单的方法可以阻止这些日志通过成功的测试?我能够抑制测试环境的所有日志,但我希望看到失败测试的日志。我正在使用as日志库。

您可以在运行将日志写入日志文件的测试时设置单独的Winston传输,并在测试失败时显示该文件的内容:

afterEach(function() {
  if (this.currentTest.state !== 'failed') return;
  console.log( fs.readFileSync('/your/logfile').toString() );
});
在每次测试之前,您要删除文件以重新开始:

beforeEach(function(done) {
  try { fs.unlinkSync('/your/logfile'); } catch(e) {}
});

记录器如何知道哪些测试将失败?当然,记录器不知道。但应该可以将所有日志堆叠在一个队列中,如果测试成功,则刷新队列,如果未堆叠,则将日志发送到控制台。所以问题是,如果有人已经试过了,或者我应该自己试一下。。。