2013-04-25 159 views
30

我无法找到在Visual Studio 2012中使用Resharper运行Jasmine测试时调试(遍历)JavaScript代码的方法。我尝试使用浏览器(Chrome)运行测试,但测试运行程序在测试结束后立即关闭端口运行,所以我不能在代码中放置断点。也尝试在Internet Explorer中运行并在Visual Studio中放置断点,但它不会附加到该过程。我的测试有很多/ /参考脚本,Resharper自动包含在测试运行器中,但我不想为每个我想要调试的测试手动执行此操作。请帮我理解这一点。如果你有一个失败的茉莉花测试,那么你如何进行调试?如何用Resharper调试Jasmine测试?

+0

我的解决方法到目前为止没有使用resharper进行调试。手动工作:获取Jasmine Standalone Test Runner并将所有引用包含在脚本标记中,并包含测试本身。然后在浏览器的开发者控制台中调试。 – orad 2013-04-26 00:28:00

+0

我是否正确理解Re#runner打开浏览器并且想要在浏览器中调试您的规格? – zbynour 2013-04-26 06:36:20

+0

@zbynour不能这样做,因为只要测试完成,它就会关闭http端口。 – orad 2013-05-02 22:44:14

回答

17

尝试使用debugger关键字。只需将以下代码行添加到要调试的代码中(可能符合规范):

debugger; 

它调用任何可用的调试功能。它在IE中不起作用,但在Chrome中运行得非常好(你写了你使用它,所以我猜测它只是用于调试)。

当然,之后一定要删除debugger关键字!也许没有什么简单的方法可以在一般的生产代码中避免它(如果你不仅在spesc中使用它),但如果你对此感兴趣,SO question可能会有所帮助。

+1

太棒了,我以为'调试器;'是在IE中支持,因为我之前使用过它,但不知道它也存在于Chrome中。谢谢! – orad 2013-05-08 20:25:51

+3

这似乎不适用于我的Chrome内,因为它可以继续执行而不会跳到调试器。还有其他建议吗? – 2013-05-23 14:44:14

+1

@mklinker请原谅我太长的响应时间...我唯一想到的是在浏览器中打开开发者工具(因为它调用“任何可用的调试funxtionality”,所以没有调试器打开意味着它继续像你一样愉快写)。但我不知道是否有可能这样做(以哪种方式打开浏览器)。目前我使用Testacular runner,因此在捕获的浏览器中打开开发工具很容易(因为它仍然是打开的)。 – zbynour 2013-07-01 14:21:16

33

由于我没有debugger;工作,我发现了另一种解决方案。 通过添加以下内容到我的测试中,resharper将不会被通知测试已完成,因此我们可以在打开的浏览器(我使用chrome)和更新(F5)页面中设置调试断点。

jasmine.getEnv().currentRunner_.finishCallback = function() {}; 

由于茉莉花2.0,您需要使用:

ReSharperReporter.prototype.jasmineDone = function() { }; 

停止试验中的ReSharper的TestRunner窗口时,你就大功告成了。

这也可以为QUnit

QUnit.moduleDone = function(){} 
+0

令人惊叹!这样可行! )) 谢谢。 – LionSoft 2015-05-05 15:22:24

+0

不是最显而易见的解决方案:)并且对@Jestas茉莉花2.0部分的赞誉 – 2015-05-06 09:03:30

+0

如果可以的话,我会给你更多的观点。很棒的发现。 – 2015-10-08 18:43:55

1

去做的,我贴在Debugging jasmine tests with resharper and phantom js

我调试;通过在ReSharper选项中将IE 11设置为我的测试浏览器来工作。最酷的是,您可以在Visual Studio版本的代码中设置断点,并使用Visual Studio进行设置和调试。你真的不需要与浏览器交互。

0

我知道这是一个老问题,这个答案稍微偏离主题,但如果你不想干涉回调Chutzpah test runner上下文菜单可以在这里支持你。运行ReSharper的/ phantomjs测试(这样你就不会得到标签爆炸)和调试在Chrome(或您的首选浏览器)发射了右键点击:

Chutzpah Test Runner Context Menu Extension

相关问题