2015-11-03 1 views
2

У меня есть проект создан на основе вокруг Polymer Starter Kit, который включает в себя Web-компонент-тестерКак я могу заменить сервер в Web Component Tester

Этот проект включает в себя код PHP-сервер, который я хотел бы, чтобы проверить путем написания тестов для запуска в браузере, который будет использовать код сервера PHP через Ajax Calls.

Это подразумевает замену сервера, который использует тестер веб-компонентов, ТОЛЬКО при тестировании кода на стороне сервера. Надеюсь сделать для этого отдельную задачу.

К сожалению, я не понимаю отношения между WCT, Selenium и тем, что когда-либо запускался в настоящее время сервером. Я вижу, что команда WCT запускает Selenium, но я не могу узнать, что такое веб-сервер и как он запускается. Я подозреваю, что это WCT, потому что есть конфигурация сопоставления каталогов с URL-адресами, но кроме этого у меня нет подсказки, несмотря на попытку прочитать код.

Может кто-нибудь объяснить, как я могу заставить его запускать собственный сервер при тестировании клиента, но полагаясь на уже настроенный веб-сервер (nginx) при запуске сервера. Я могу установить nginx для запуска с локального хоста или другого домена, если это способ выбрать другую конфигурацию.

EDIT: Теперь я обнаружил, что runner/webserver.js запускает экспресс-сервер, и эти URL-адреса получают сопоставление, поэтому базовый каталог для тестового бегуна и каталог bower_components оба отображаются на URL-адрес/components.

В настоящее время я сбиваю с толку, в каких обстоятельствах это запускается. Похоже, что загрузка плагинов каким-то образом делает это, но мое понимание от чтения кода для этого является незначительным.

ответ

0

Ответ заключается в том, что сам тестер веб-компонентов имеет комментарий в файле 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.

Смежные вопросы