2015-04-01 63 views
1

我有一個在intern-geezer中運行的測試循環,成功運行了幾百次非常相似的測試中有大約20個。然後突然:實習生 - 窗口未定義

FATAL ERROR 
ReferenceError: window is not defined 

並且循環停止。在我的代碼中沒有對windowdocument的明確調用。這是純粹的JS。我正在使用實習生,2.2.2。錯誤堆棧中引用的行號絕對沒有意義。他們走了。

我讀過的建議,從主交換機:

./node_modules/.bin/intern-client config=tests/intern 

到:

./node_modules/.bin/intern-runner config=tests/intern 

,但我不希望連接到服務器或打開瀏覽器(有一個單獨,奇怪的加載錯誤發生在那裏似乎特定於geezer)。我想通過命令行來解決這個問題。感謝任何幫助,我對實習生是全新的。

+0

只是出於好奇,你爲什麼要使用奇特的,如果你只是想運行在節點客戶端測試? Geezer只能在舊版瀏覽器中運行測試。 – jason0x43 2015-04-01 13:59:58

+0

嗯,我最終希望能夠在舊IE中運行測試。首先,我想要基本的單元測試工作。 – Ben 2015-04-01 16:23:31

回答

1

window是一個瀏覽器對象,所以它不會在Node中可用。如果要在節點客戶端(intern-client)中獨佔運行測試,則需要確保沒有使用任何引用瀏覽器對象的代碼(例如document,window,navigator等),並且沒有使用您的依賴關係

如果堆棧跟蹤行號已關閉,則可能是代碼覆蓋率檢測。您可以通過將Intern config中的excludeInstrumentation屬性設置爲/./來禁用該屬性。

+0

我的代碼(或我的一個依賴項)都不會調用窗口,文檔或導航器。測試非常相似。爲什麼有些人會跑而不是其他人呢?這不是一個語法錯誤。我花了整整一個下午的時間來測試這些測試,並嘗試評論各種組合。 – Ben 2015-04-01 16:35:57

0

你可能設置「HTML」作爲記者在實習生的配置文件:

intern.reporters = [ 
    { id: 'Html' }, 
    { id: 'JUnit', filename: 'test-reports/quality/functional/junit.xml' }, 
    ..., 
];