我們使用Chutzpah測試適配器在Visual Studio中運行一些QUnit JavaScript測試。一切正常,直到我們最近修改了我們的api(最近被js文件測試過的),並在UserAgent http頭上添加了一些驗證。當我嘗試更新測試以更改/模擬用戶代理時,我意識到即使通過overriding the default browser property也無法直接進行測試。如何使用Chutzpah更改底層的Phantomjs對象設置?
經過幾天的清理,我終於找到了究竟發生了什麼。 Chutzpah正在爲要運行的測試文件創建一個phantomjs page對象。這是在位於Chutzpah adapter installation path的基本JavaScript文件(chutzpahRunner.js)上完成的。這些都在文件的最後一行,有效地開始測試:
...
// Allows local files to make ajax calls to remote urls
page.settings.localToRemoteUrlAccessEnabled = true; //(default false)
// Stops all security (for example you can access content in other domain IFrames)
page.settings.webSecurityEnabled = false; //(default true)
page.open(testFile, pageOpenHandler);
...
Phatomjs支持在settings object的頁確定它改變了用戶代理頭。如果我編輯在我的機器上這chutzpahRunner.js文件,並手動設置的用戶代理那裏,就像這樣:
page.settings.userAgent = "MyCustomUserAgent";
我的測試開始重新工作。問題在於,這不在項目本身中,因此無法與團隊的其他成員共享。
是否可以更改由Chutzpah創建的phantomjs對象的屬性以運行測試?我想要從我自己的測試中,或從我可以嵌入到管道中的另一個腳本文件中更改它們。
叉chutzpah並寫一個補丁。如果你做得很好,也許它會被合併回來。 – 2014-10-20 13:47:15