2015-11-03 38 views
2

我已成立了一個項目周圍的聚合物入門套件,其中包括基於Web的組件的測試我如何能夠替代服務器的Web組件測試儀

該項目包括PHP服務器的代碼,我也想考通過編寫測試在瀏覽器中運行,該瀏覽器將通過Ajax調用使用PHP服務器代碼。

這意味着替換Web Component Tester僅在測試服務器端代碼時使用的服務器。我希望爲此做一個單獨的g task任務。

不幸的是,我不明白WCT,Selenium和當前運行的服務器之間的關係。我可以看到WCT命令啓動Selenium,但我找不到Web服務器是什麼以及如何啓動。我懷疑它是WCT,因爲有目錄映射到網址的配置,但除了我沒有線索,儘管試圖閱讀代碼。

有人可以解釋一下如何在測試客戶端時運行自己的服務器,但是在運行服務器時依靠已經建立的web服務器(nginx)。我可以將nginx設置爲從本地主機或其他域中運行,如果這是一種選擇不同配置的方式。

編輯:我現在已經發現runner/webserver.js啓動一個快速服務器,並且這個url被映射,因此測試運行器和bower_components目錄的基本目錄都映射到/ components url。

什麼是目前令我困惑的是在什麼情況下運行。看起來,加載插件以某種方式做它,但我從閱讀代碼的理解是脆弱的。

回答

0

答案是Web組件測試器本身在runner/config.js文件中有一條評論。

wct-conf.js,你可以使用registerHooks鍵添加到被退回補充說,確實

registerHooks: function(wct) { 
    wct.hook('prepare:webserver', function(app, done) { 
     var proxy = require('express-http-proxy'); 
     app.use('/api', 
     proxy('pas.dev', { 
      forwardPath: function(req, res) { 
      return require('url').parse(req.url).path; 
      } 
     }) 
    ); 
     done(); 
    }); 

該寄存器鉤子函數允許您提供一個路線(在我的情況/ API),此函數對象代理服務器可以運行PHP腳本。