将Node Mocha测试日志保存到磁盘

9

需要将测试日志保存到磁盘

我尝试了以下代码:

  mocha -R spec  test/**/*_test.js   >  report

假设任何测试用例失败都不会记录到“报告”文件中。请建议最佳方法记录测试报告。

3个回答

11
你应该将 stderr 也重定向到该日志文件:
mocha -R spec  test/**/*_test.js > report 2>&1

编辑:如果您想将内容同时发送到文件控制台:

mocha -R spec  test/**/*_test.js 2>&1 | tee report

在文件“[0m[0m controller [0m”中出现了一些垃圾字符。 - Elankeeran
1
使用 -C--no-colors 调用 Mocha。 - Grexis
非常感谢您的建议...但是如果您能提供一个好的选项,让我在控制台和日志文件中都能使用颜色,那将对我帮助很大。 - Elankeeran
@AjitejKaushik 所以你需要正确安装 Mocha:npm i mocha -g - robertklep
1
@AjitejKaushik,你应该为此提出单独的问题,这与当前问题没有太大关系。 - robertklep
显示剩余5条评论

5

这个问题没有说明日志将用于何种用途。如果您需要报告中的堆栈跟踪,那么您不能使用 json-stream,因为该报告程序不包括跟踪记录。但是,如果您只需要一些可以轻松解析的东西,并且您关心的唯一事情是知道测试的状态而不是失败的原因,那么 json-stream 报告程序很好用:

$ mocha -R json-stream > report

你会得到一份常规格式化的行列表:
["start",{"total":1}]
["fail",{"title":"q","fullTitle":"blah q"}]
["end",{"suites":1,"tests":1,"passes":0,"pending":0,"failures":1,"start":"2014-01-08T18:10:27.764Z","end":"2014-01-08T18:10:27.768Z","duration":4}]

然后你可以轻松地使用grep查找失败的测试:
$ grep '^\["fail"' report

输出结果还可以传递给一个工具,将其缩小到你想要的内容,并格式化得漂亮些,以便放入电子邮件、即时消息或其他地方。当我运行测试套件进行数千次测试时,我经常使用这种方法,因为我最关心的是快速获取失败的列表。


0

或者您可以简化为

mocha --colors  ./test/**/*_test.js 2>&1 | tee ./reports/report.log

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接