我無法找到在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. Karma-Jasmine:如何測試$ translate.use?
- 7. 用Jasmine測試RequireJS
- 8. 如何使用resharper調試NUnit單元測試?
- 9. 無法使用Resharper調試測試 - 無法啓動調試器
- 10. 用Jasmine-Maven測試AJAX調用
- 11. 使用Jasmine測試REST API調用
- 12. 異步調用Jasmine測試事件
- 13. 使用Chutzpah和ReSharper進行Jasmine測試的ReferenceError
- 14. 如何用Jasmine測試jQuery beforeSend方法?
- 15. 如何用Jasmine測試JQuery插件?
- 16. 如何用Jasmine測試(行爲驅動開發)測試這個?
- 17. Jasmine:測試函數,使用jasmine從不同的函數調用
- 18. 用Jasmine測試window.resize夾具
- 19. 用Jasmine測試javascript警報
- 20. Jasmine中的測試用例
- 21. 如何使用ReSharper創建NUnit測試?
- 22. 用resharper創建NUnit測試
- 23. 如何測試使用Jasmine在回調中執行的操作
- 24. Karma-Jasmine:如何正確測試http調用?
- 25. Jasmine + AngularJS:如何測試$ rootScope。$ broadcast是否被參數調用?
- 26. 在WebStorm中使用Angular 2調試Karma/Jasmine測試
- 27. ReSharper的+ NUnit的測試測試繼承
- 28. karma-jasmine - 如何測試返回對象
- 29. 如何在Jasmine中編寫FileReader測試?
- 30. 如何在TeamCity中運行Jasmine測試
我的解決方法到目前爲止沒有使用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