我有一个基于Polymer Starter Kit设置的项目,其中包括Web-Component-Tester
这个项目包括php服务器代码,我也想通过编写在浏览器中运行的测试来测试,该浏览器将通过Ajax Calls利用PHP服务器代码。
这意味着在测试服务器端代码时,仅替换Web组件测试程序正在使用的服务器。我希望能为此做一个单独的gulp任务。
不幸的是,我不了解WCT,Selenium与当前运行的服务器之间的关系。我可以看到WCT命令启动Selenium,但我无法找到Web服务器是什么以及如何启动它。我怀疑它是WCT,因为有目录映射到URL的配置,但除此之外我还没有线索,尽管尝试阅读代码。
有人可以解释我在测试客户端时如何使其运行自己的服务器,但在运行服务器时依赖于已经设置的Web服务器(nginx)。我可以将nginx设置为从本地主机或其他域运行,如果这是一种选择不同配置的方法。
编辑:我现在发现runner / webserver.js启动了一个快速服务器,并且该URL被映射,因此测试运行器和bower_components目录的基本目录都被映射到/ components url。
目前令我困惑的是在什么情况下这会运行。似乎加载插件以某种方式做到了,但是我从阅读代码中获得的理解是微不足道的。
答案 0 :(得分:0)
答案是Web组件测试人员本身在runner/config.js
文件中有注释。
在wct-conf.js
中,您可以将registerHooks键用于返回的Object以添加一个函数
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脚本的服务器。