我无法找到在Visual Studio 2012中使用Resharper运行Jasmine测试时调试(遍历)JavaScript代码的方法。我尝试使用浏览器(Chrome)运行测试,但测试运行程序在测试结束后立即关闭端口运行,所以我不能在代码中放置断点。也尝试在Internet Explorer中运行并在Visual Studio中放置断点,但它不会附加到该过程。我的测试有很多/ /参考脚本,Resharper自动包含在测试运行器中,但我不想为每个我想要调试的测试手动执行此操作。请帮我理解这一点。如果你有一个失败的茉莉花测试,那么你如何进行调试?如何用Resharper调试Jasmine测试?
回答
尝试使用debugger
关键字。只需将以下代码行添加到要调试的代码中(可能符合规范):
debugger;
它调用任何可用的调试功能。它在IE中不起作用,但在Chrome中运行得非常好(你写了你使用它,所以我猜测它只是用于调试)。
当然,之后一定要删除debugger
关键字!也许没有什么简单的方法可以在一般的生产代码中避免它(如果你不仅在spesc中使用它),但如果你对此感兴趣,SO question可能会有所帮助。
太棒了,我以为'调试器;'是在IE中支持,因为我之前使用过它,但不知道它也存在于Chrome中。谢谢! – orad 2013-05-08 20:25:51
这似乎不适用于我的Chrome内,因为它可以继续执行而不会跳到调试器。还有其他建议吗? – 2013-05-23 14:44:14
@mklinker请原谅我太长的响应时间...我唯一想到的是在浏览器中打开开发者工具(因为它调用“任何可用的调试funxtionality”,所以没有调试器打开意味着它继续像你一样愉快写)。但我不知道是否有可能这样做(以哪种方式打开浏览器)。目前我使用Testacular runner,因此在捕获的浏览器中打开开发工具很容易(因为它仍然是打开的)。 – zbynour 2013-07-01 14:21:16
由于我没有debugger;
工作,我发现了另一种解决方案。 通过添加以下内容到我的测试中,resharper将不会被通知测试已完成,因此我们可以在打开的浏览器(我使用chrome)和更新(F5)页面中设置调试断点。
jasmine.getEnv().currentRunner_.finishCallback = function() {};
由于茉莉花2.0,您需要使用:
ReSharperReporter.prototype.jasmineDone = function() { };
停止试验中的ReSharper的TestRunner窗口时,你就大功告成了。
这也可以为QUnit
QUnit.moduleDone = function(){}
令人惊叹!这样可行! )) 谢谢。 – LionSoft 2015-05-05 15:22:24
不是最显而易见的解决方案:)并且对@Jestas茉莉花2.0部分的赞誉 – 2015-05-06 09:03:30
如果可以的话,我会给你更多的观点。很棒的发现。 – 2015-10-08 18:43:55
去做的,我贴在Debugging jasmine tests with resharper and phantom js
我调试;通过在ReSharper选项中将IE 11设置为我的测试浏览器来工作。最酷的是,您可以在Visual Studio版本的代码中设置断点,并使用Visual Studio进行设置和调试。你真的不需要与浏览器交互。
我知道这是一个老问题,这个答案稍微偏离主题,但如果你不想干涉回调Chutzpah test runner上下文菜单可以在这里支持你。运行ReSharper的/ phantomjs测试(这样你就不会得到标签爆炸)和调试在Chrome(或您的首选浏览器)发射了右键点击:
- 1. 如何使用jasmine测试jquery调用?
- 2. 用jasmine测试ajax调用
- 3. 用node-inspector调试karma-jasmine测试
- 4. ReSharper中的“使用调试器测试”?
- 5. 调试反应单元测试(Karma/Jasmine)
- 6. 使用Jasmine测试REST API调用
- 7. 如何使用resharper调试NUnit单元测试?
- 8. 无法使用Resharper调试测试 - 无法启动调试器
- 9. 如何用Jasmine测试JQuery插件?
- 10. 使用Chutzpah和ReSharper进行Jasmine测试的ReferenceError
- 11. Jasmine:测试函数,使用jasmine从不同的函数调用
- 12. 如何使用ReSharper创建NUnit测试?
- 13. 如何测试使用Jasmine在回调中执行的操作
- 14. Karma-Jasmine:如何正确测试http调用?
- 15. Jasmine + AngularJS:如何测试$ rootScope。$ broadcast是否被参数调用?
- 16. 在WebStorm中使用Angular 2调试Karma/Jasmine测试
- 17. 如何在Jasmine中编写FileReader测试?
- 18. karma-jasmine - 如何测试返回对象
- 19. 如何测试Jasmine node.js中的事件?
- 20. 用resharper创建NUnit测试
- 21. 如何用gulp-jasmine,gulp-jasmine-browser或gulp-jasmine-phantom测试我的功能?
- 22. 错误调试单元测试使用ReSharper的
- 23. 在Jasmine中生成测试
- 24. Jasmine中的测试组
- 25. ng测试关闭jasmine
- 26. 如何调试Jest测试?
- 27. 如何在我的Karma/Jasmine测试中调试“[object ErrorEvent]抛出”错误?
- 28. 如何手动测试用CoffeeScript编写的AngularJS指令和Jasmine测试?
- 29. 如何调试Resharper 4.0加载项?
- 30. resharper单元测试继承
我的解决方法到目前为止没有使用resharper进行调试。手动工作:获取Jasmine Standalone Test Runner并将所有引用包含在脚本标记中,并包含测试本身。然后在浏览器的开发者控制台中调试。 – orad 2013-04-26 00:28:00
我是否正确理解Re#runner打开浏览器并且想要在浏览器中调试您的规格? – zbynour 2013-04-26 06:36:20
@zbynour不能这样做,因为只要测试完成,它就会关闭http端口。 – orad 2013-05-02 22:44:14