节点Mocha测试日志保存到磁盘

Ela*_*ran 7 mocha.js node.js

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

我试过下面的代码

  mocha -R spec  test/**/*_test.js   >  report
Run Code Online (Sandbox Code Playgroud)

假设任何测试用例都失败了它不会登录到'report'文件.请建议记录测试报告的最佳方法.

rob*_*lep 8

您也应该重定向stderr到该日志文件:

mocha -R spec  test/**/*_test.js > report 2>&1
Run Code Online (Sandbox Code Playgroud)

编辑:如果您希望将内容发送到文件控制台:

mocha -R spec  test/**/*_test.js 2>&1 | tee report
Run Code Online (Sandbox Code Playgroud)


Lou*_*uis 5

问题没有指定日志将用于什么。如果报告中需要堆栈跟踪,则不能使用,json-stream因为此报告器不包含跟踪。但是,如果您想要的是可以简单解析的东西,并且您唯一关心的是了解测试的状态而不是它们失败的原因,那么json-stream报告器可以很好地工作:

$ mocha -R json-stream > report
Run Code Online (Sandbox Code Playgroud)

你会得到一个定期格式化的行列表:

["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}]
Run Code Online (Sandbox Code Playgroud)

然后你可以轻松地 grep 失败的测试:

$ grep '^\["fail"' report
Run Code Online (Sandbox Code Playgroud)

输出也可以传递给一个工具,该工具将其缩小到您想要的范围,并很好地将其格式化为电子邮件、IM 消息或其他内容。在运行包含数千个测试的测试套件时,我经常使用这种方法,我最关心的是快速获取失败的列表。