使用 Mocha 测试 JavaScript - 如何使用 console.log 来调试测试
Testing javascript with Mocha - how can I use console.log to debug a test?
我正在使用javascript测试运行器"Mocha"。
我有一个失败的测试,所以我会使用 console.log
调试它。
但是当测试运行时,没有输出(只有来自 Mocha 的测试结果(。看来摩卡已经捕获并压制了我的console.log
输出!
如何让摩卡显示我的输出?(对于失败的测试(?
编辑:
非常抱歉!— console.log
在测试期间确实有效! 我一定期望它会抑制输出,并且我没有正确检查自己的代码。 感谢您的回复。所以。。。话虽如此...也许抑制通过的测试的输出实际上会很好?嗯。。。
在相关说明中:我想使用console.log
,因为我在尝试让 Eclipse 调试器连接到 node.js 时遇到了很多麻烦。
我是唯一一个觉得这很棘手的人吗? 你们如何调试节点.js? 使用调试器,还是使用console.log
语句?
您使用哪些摩卡选项?
也许这与使用的报告器(-R(或ui(-ui(有关?
console.log(msg);
在我的测试运行期间工作正常,尽管有时会混入有点愚蠢。 大概是由于测试运行的异步性质。
以下是我正在使用的选项(mocha.opts(:
--require should
-R spec
--ui bdd
嗯。。刚刚在没有任何 mocha.opts 的情况下进行了测试,console.log
仍然有效。
如果要测试异步代码,则需要确保将done()
放在该异步代码的回调中。我在测试对 REST API 的 http 请求时遇到了这个问题。
您可能还console.log
放在失败且未捕获的期望之后,因此您的日志行永远不会被执行。
我对node.exe
程序(例如带有mocha
的测试输出(有问题。
就我而言,我通过删除一些默认的"node.exe"别名来解决它。
我正在使用适用于Windows(2.29.2(的Git Bash,并且从/etc/profile.d/aliases.sh
设置了一些默认别名,
# show me alias related to 'node'
$ alias|grep node
alias node='winpty node.exe'`
要删除别名,请更新aliases.sh
或干脆执行
unalias node
我不知道为什么winpty
对缓冲输出有这种副作用console.info
但是通过直接node.exe
使用,我没有更多的标准输出问题。
使用调试库。
import debug from 'debug'
const log = debug('server');
使用它:
log('holi')
然后运行:
DEBUG=server npm test
就是这样!
- 模糊事件的Javascript测试
- 我的单元测试选项是什么
- 测试索引值是否等于某个数字的倍数
- 在localhost Dev Box上测试JSONP请求的最佳方式
- 测试数组中每个项的内容
- 测试Angular Service解决错误回调中的promise
- Array.length似乎不起作用;console.log则显示其他情况
- 有没有一种方法可以在控制台关闭的情况下让console.log()在IE中记录消息
- 使用Jest测试React Native应用程序
- 为函数代码编写测试
- 如何在Angular单元测试中从另一个控制器的rootScope将方法添加到rootScope中
- 如何使用JS/nightwatchjs并行运行多个测试
- 如何使用console.log语句在Mocha中测试函数
- Mocking console.log()/MOCHA测试框架中的任何其他函数
- 如何使用console.log在因果报应测试中检查函数
- 如何使用Karma单元测试运行程序捕获console.error
- 在 Jasmine 测试中将 console.log() 的调用重定向到标准输出
- 使用 Mocha 测试 JavaScript - 如何使用 console.log 来调试测试
- 'console.log'在Webstorm中测试Electron应用程序时不起作用
- 为什么我的测试失败,并且lodash方法中的console.log()语句没有记录日志