如何從angular2運行時檢測到我在e2e測試模式下運行?我有一個會話刷新間隔,我不想在測試模式下設置,以避免量角器出現同步問題。如何檢測angular2 web應用程序處於測試模式
一個明顯的答案是尋找一個URL參數。有沒有一個骯髒的解決方案?
編輯(賞金之前的說明): 量角器連接到角(1或2),以便在評估任何事情之前等待所有未完成的工作完成。這意味着所有優秀的角度promises
或任何活動的角度timer
將掛起量角器測試(並最終導致它們失敗)。最常見的解決方案是設置browser.ignoreSynchronization = true
,但這會迫使我在回調鏈中嵌套所有e2e測試或使用一堆睡眠。可能都是。因此,看起來我被困在一塊岩石和一個艱難的地方,要麼有寫真e2e測試的實際經驗,要麼圍繞特定的應用代碼行設置條件,以便在「測試模式」(eww,醜陋)時不運行。我選擇了更容易的e2e測試,因爲我期望以數百種方式編寫它們,到目前爲止,我們只談到一個在測試期間不重要的間隔(會話刷新間隔爲30分鐘)。
從全局變量(例如ENV)獲取環境非常普遍。 – estus
我對Angular2使用'browser.ignoreSynchronization = true',不必等待模型在更改後解決。當'browser.ignoreSynchronization = true'是一個問題並且迫使你入睡時,你能描述一個樣本嗎? –
@JuanmiRodriguez每次有異步的事情都完成了。如更改「頁面」或通過網絡獲取數據。 – Hampus