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时遇到了很多问题。
我是唯一一个发现这个棘手的人吗?你们怎么调试node.js?使用调试器还是使用console.log语句?
- 成交!:)现在,我仍然通过MOCA测试"调试"节点。在不久的将来,我确实看到了一段时间,我可能想在这里回避一些选项:stackoverflow.com/questions/1911015/…
- 我建议您不要在node.js上使用eclipse,它确实不是使用imo.jetbrains的最佳环境,webstorm是一个很棒的node.js ide,尽管它很贵。如果你想免费的话,我真的很喜欢新的Visual Studio代码,它内置了对节点调试和其他使节点开发更好的东西的强大支持。
- @DSW88-我对Webstorm的经验是,一旦我们的文件结构变得越来越大和越来越深,它就会减慢速度。让我想起了过去的Java应用程序。
- 除了@dsw88编写的:use vs code:在代码中的某个位置插入"debugger;"语句之外。使用--inspect brk选项开始测试,并使用vs代码调试操作"nodejs attach"。调试器从mocha脚本的第一行开始,您必须按一下resume。下一次到达"debugger;"语句时,您就可以开始了。
你在用什么摩卡咖啡?
也许这与使用报告程序(-r)或UI(-ui)有关?
在我的测试运行期间工作得很好,尽管有时会混合在一点糊状物中。可能是由于测试运行的异步性质。
以下是我使用的选项(mocha.opts):
1 2 3
| --require should
-R spec
--ui bdd |
嗯。刚测试过没有任何摩卡OPT和console.log仍然有效。
- 摩卡-R规格工作得很好!谢谢
- Log()实际要放在哪里?
如果您正在测试异步代码,则需要确保将done()放入该异步代码的回调中。我在测试对RESTAPI的HTTP请求时遇到了这个问题。
您可能还将console.log放在了一个失败且未被捕获的期望之后,因此您的日志行永远不会被执行。
- 是的,这是我的问题,谢谢你的建议。我把控制台日志移到了失败之前。期待,他们现在显示。