ora*_*rad 31 javascript resharper unit-testing jasmine
在Visual Studio 2012中使用Resharper运行Jasmine测试时,我无法找到调试(遍历)JavaScript代码的方法.我尝试使用浏览器(Chrome)运行测试,但测试运行时测试运行器会立即关闭端口所以我不能在代码中加一个断点.还尝试在Internet Explorer中运行并在Visual Studio中放置断点,但它不会附加到进程.我的测试有很多///参考脚本,Resharper自动包含在测试运行器中,但我不想为我想要调试的每个测试手动执行此操作.请帮我理解这个.如果您的茉莉花测试失败,那么您如何调试它?
Tor*_*ell 33
由于我没有debugger;工作,我找到了另一个解决方案.通过在我的测试中添加以下内容,将不会通知resharper测试已完成,因此我们可以在打开的浏览器中设置调试断点(我使用chrome)并更新(F5)页面.
jasmine.getEnv().currentRunner_.finishCallback = function () {};
Run Code Online (Sandbox Code Playgroud)
从Jasmine 2.0开始,您需要使用:
ReSharperReporter.prototype.jasmineDone = function () { };
Run Code Online (Sandbox Code Playgroud)
完成后,在resharper testrunner窗口中停止测试.
这也可以用于QUnit
QUnit.moduleDone = function(){}
Run Code Online (Sandbox Code Playgroud)
zby*_*our 19
尝试使用debugger关键字.只需将以下行添加到要调试的代码中(可能在规范中):
debugger;
Run Code Online (Sandbox Code Playgroud)
它调用任何可用的调试功能.它在IE中不起作用,但在Chrome中工作得很好(你写过你使用它,所以我想它只是用于调试).
当然,之后一定要删除debugger关键字!也许没有非常简单的方法如何在生产代码中避免它(如果你不仅在spesc中使用它),但如果你对此感兴趣,那么问题可能会有所帮助.