2013-04-25 90 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

相關問題