2017-09-22 73 views
0

我的目標是調試我的一個測試。我使用Mocha作爲基地,SinonJS用作間諜,存根和嘲笑。由於某些未知的原因,我的ajax方法的存根已停止工作。它在一週前運行,現在發送請求並且存根不跟蹤調用。用mocha調試,加載全局變量

我有最describe

let sandbox = sinon.sandbox.create(); 
let ajaxStub = undefined; 

,然後這裏面的這些行:

beforeEach(function() { 
    ajaxStub = sandbox.stub($, 'ajax'); 
}); 

afterEach(function() { 
    sandbox.restore(); 

}); 

不管怎樣,我的問題是不是出了什麼錯,我可能做一些愚蠢至極別處,一些調試可能可以解決它。我的問題是調試本身。

mocha --debug-brk --inspect ./test/mytest.js 

這就是我在命令行中運行以獲取調試會話。

我的問題是運行目前我使用的是咕嘟咕嘟的測試,與我加載我所有的框架依賴和我所有的全局 - 庫中添加這種方式還包括jQuerysinon

當然, ,如果我使用該命令行調試我的測試,NodeJS不會在環境中加載所需的文件,並且在第一次引用sinon時,我會得到一個異常。

我可以創建一個HTML頁面,在其中加載所需的文件和測試並運行測試 - 然後用瀏覽器檢查器手動調試 - 但這是我想避免的。有沒有更多的自動化?

我不是一個專家的NodeJS,我只是大致瞭解它是什麼,它是如何工作的,所以我非常有信心,有可能是一些我錯過了可以幫助:)

我」什麼現在想到的是批處理腳本來查找所需的文件,但這就是我所擁有的。還有一點需要注意的是:代碼庫真的很老大,我真的沒有權限將現有代碼重構成es6模塊。

回答

0

我找到了一個解決方案:我將創建一個testDebugLoader.js腳本,在該腳本中我將編寫要調試的測試以及我需要加載的腳本的路徑數組。

然後循環遍歷數組,加載每個需要的文件,並在檢索到的文本上調用eval。