2015-09-14 36 views
1

我正在編寫一個Angular js應用程序並希望使用html5mode。當使用實習生在browserstack上進行測試時,我可以讓實習生的服務器在運行功能測試時應用url-rewriting規則

我正在使用intern.io對unit/ui進行測試。

這些圖片展示了什麼,我需要做什麼來配置我的服務器支持此模式:

https://github.com/angular-ui/ui-router/wiki/Frequently-Asked-Questions#how-to-configure-your-server-to-work-with-html5mode

我遇到的問題是,我無法找到如何配置實習生做同類的事情。實習生從我的本地機器隧道到BStack運行該網站。

我剛剛得到的瀏覽器崩潰,因爲它無法加載它想要的頁面。

任何幫助,將不勝感激。謝謝。

回答

0

目前Intern服務器沒有公開的方式來啓用它。你可以做什麼,儘管它利用代理服務器來完成你期望的轉換和重寫,然後將代理URL指向該服務器。

您想配置的重要組成部分看起來是這樣的(假設實習3或更高版本):

define([ 
    'intern', 
    'my/server/main' 
], function (intern, server) { 
    return { 
     proxyPort: 9000, 
     proxyUrl: 'http://localhost:9001/', 
     setup: function() { 
      if (intern.mode === 'runner') { 
       server.start({ port: 9001 }); 
      } 
     }, 
     teardown: function() { 
      server.close(); 
     } 
    }; 
}); 

您將需要創建一個提供你所需要的功能,並通過代理服務器在適當的情況下向Intern代理服務器發送。您可以將實習代理服務器設置爲偵聽端口(proxyPort: 9000),但您會指示實習生將客戶端指向您的代理服務器(proxyUrl: 'http://localhost:9001/')的URL,該端口正在其他端口上偵聽。然後,您將使用setupteardown屬性來啓動和停止服務器,如果intern.mode === 'runner'

舉一個實際的例子,看看dojo/core,代理服務器位於tests/services/echo.ts

相關問題