2012-05-19 58 views
75

我正在使用JavaScript测试运行“Mocha”。使用Mocha测试javascript - 我如何使用console.log来调试测试?

我有一个测试失败,所以我会用console.log进行调试。

但是当测试运行时,没有输出(仅来自Mocha的测试结果)。 摩卡似乎已经捕获并压制了我的console.log输出!

我怎样才能让摩卡显示我的输出? (在测试失败)?

编辑:

表示深深的歉意! - console.log在测试过程中可以正常工作!我一定会期待它压制输出,而我没有正确地检查自己的代码。感谢您的回应。 所以...说...也许它实际上会很好地抑制通过测试的输出?嗯...

在相关的说明:我想使用console.log,因为我有很多麻烦试图让Eclipse调试器连接到node.js.

我是唯一一个发现这种棘手的人吗?你们如何调试node.js?用调试器,还是用console.log语句?

+0

好价钱! :)现在我仍然通过moca测试非常“调试”节点。我在不久的将来会看到一段时间,当我想要在这里评估一些选项时:http://stackoverflow.com/questions/1911015/how-to-debug-node-js-applications –

+0

我建议你不要将Eclipse用于Node.js,它确实不是使用IMO的最佳环境。 JetBrains的WebStorm是一个很棒的Node.js IDE,虽然它需要花钱。如果你正在寻找免费的,我真的很喜欢新的Visual Studio代码,它有很好的内置支持节点调试和其他的事情,使节点的发展很好。 – dsw88

+0

@ dsw88 - 我对WebStorm的经验是,一旦我们的文件结构开始变得越来越大,它就会减慢速度。使用Java应用程序提醒了我过去的那些日子。 –

回答

40

您正在使用哪些Mocha选项?

也许这跟使用记者(-R)或ui(-ui)有关?

console.log(msg); 

在我的测试运行过程中工作正常,虽然有时混合在一个有点愚蠢。可能是由于测试运行的异步性质。

以下是选项(mocha.opts)我使用:

--require should 
-R spec 
--ui bdd 

Hmm..just测试没有任何mocha.opts和console.log仍然有效。

+3

摩卡-R规格很棒!谢谢 –

+2

其中log()实际上很多TO? – PositiveGuy

29

如果您正在测试异步代码,则需要确保将done()置于该异步代码的回调中。测试http请求到REST API时,我遇到了这个问题。

12

您可能也会在您的期望失败并且未被捕获后放入您的console.log,因此您的日志行不会被执行。

+0

是的,这是我的问题,谢谢你提出这个建议。我将控制台日志移到失败的.expect之前,现在显示。 – redfox05

相关问题