【问题标题】:When testing on browserstack using intern, can i get intern's server to apply url-rewriting rules when running functional tests使用实习生在浏览器堆栈上进行测试时,我可以让实习生的服务器在运行功能测试时应用 url 重写规则吗
【发布时间】:2015-12-10 17:58:06
【问题描述】:

我正在编写一个 Angular js 应用程序并想使用 html5mode。

我正在使用 theintern.io 对其进行单元/ui 测试。

这个网站显示了我需要做些什么来配置我的服务器以支持这种模式:

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

我遇到的问题是我找不到如何配置实习生来做同样的事情。实习生正在从我的本地计算机隧道到 BStack 以运行该站点。

我只是让浏览器堆栈崩溃,因为它无法加载它想要的页面。

任何帮助将不胜感激。谢谢。

【问题讨论】:

    标签: angularjs url-rewriting intern


    【解决方案1】:

    目前实习生服务器没有以启用此功能的方式公开。尽管它使用代理服务器来执行您期望的那种转换和重写,然后将代理 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 代理服务器。您可以将 Intern 代理服务器设置为侦听端口 (proxyPort: 9000),但您会指示 Intern 将客户端指向正在侦听不同端口的代理服务器 (proxyUrl: 'http://localhost:9001/') 的 URL。然后,如果intern.mode === 'runner',您将使用setupteardown 属性来启动和停止您的服务器。

    举个实际的例子,看看dojo/core,其中代理服务器位于tests/services/echo.ts

    【讨论】:

      猜你喜欢
      • 2015-06-18
      • 1970-01-01
      • 1970-01-01
      • 2015-12-20
      • 1970-01-01
      • 1970-01-01
      • 2014-12-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多