2015-11-03 34 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脚本。