2013-12-18 40 views
0

tl; dr当在实习生中写入测试时发生错误时,我似乎无法获得描述发生错误的行的错误消息。我找到了一种解决方法,但它并不是真正理想的解决方案,因为它涉及到在依赖项目中的代码搞乱。有没有人有更好的方法/我只是做错了吗?谢谢!实习生中的测试解析错误不包括描述错误的行

详细信息: 我曾多次看到,如果解析在实习生中编写的测试(例如未能关闭括号,引号等)时发生错误的实际行未报告时出现问题,而只有这样的错误(我的埋入在实际的路径作为它的一个工作项目,但你的要点):

SyntaxError: Unexpected identifier at Function.vm.runInThisContext (<myproject>/node_modules/intern/node_modules/istanbul/lib/hook.js:163:16) at <myproject>/node_modules/intern/node_modules/dojo/dojo.js:745:8 at fs.js:266:14 at Object.oncomplete (fs.js:107:15)

我戳周围有点,发现有一个vm.runInThisContext的未公开(? - 其不在here)参数中,如果启用该参数实际上提供了原始错误的详细信息(herehere) - 有关于这将如何发挥出来一些讨论,但如果切换在伊斯坦布尔的dojo.js和hook.js(如果它运行)使用此参数,我得到的错误信息是这样的:

<myproject>/test/publisherConfigSpec.js:16 errorCb cat = dfd.rejectOnError(function(error) { ^^^ SyntaxError: Unexpected identifier at Function.vm.runInThisContext (<myproject>/node_modules/intern/node_modules/istanbul/lib/hook.js:163:16) at <myproject>/node_modules/intern/node_modules/dojo/dojo.js:745:8 at fs.js:266:14 at Object.oncomplete (fs.js:107:15)

这是我想要的输出(或者至少可以大幅度提高我发现和修复错误的机会),但它不适合与节点依赖关系搞混,而且在我看来,它可能过多对于拉取请求(请参见most recent update to the API)解析测试代码输入时是否存在错误,是否有另一种获得有用输出的方法?

感谢您的任何意见:)

回答

0

导入Node.js提供的SyntaxError输出显然不是很大,但是我们可能不会在任何官方使用无证功能(他们没有证件是有原因的!)实习生的发布使其工作方式不同。非语法错误(运行时错误)将被Intern捕获并报告给您正在使用的任何记者。在这种情况下,我建议你使用一个包含对语法检查支持的编辑器:Komodo Edit/IDE,WebStorm,SublimeText,Eclipse,vim ...如果你试图在语法上运行无效的代码,你的代码编辑器没有及时告诉你,你犯了一个错误。

+0

嘿公平点,我使用崇高/ IntelliJ,但我只是觉得令人惊讶的是,输出不帮你找到错误。我不希望你使用(轻度可怕)黑客,我只是想知道是否有另一种方式,但你是对的,使用IDE工作正常。感谢您的反馈意见! – user82116

+0

哦,我猜想在一个真正的项目中,我也会通过grunt将它与jshint联系起来,所以我甚至都没有从命令行那么远 - 它实际上只是尝试了它。 – user82116