2

Web-Component-Tester を含む Polymer Starter Kit に基づいてプロジェクトをセットアップしています。

このプロジェクトには PHP サーバー コードが含まれており、Ajax 呼び出しを通じて PHP サーバー コードを利用するブラウザーで実行するテストを作成してテストしたいと考えています。

これは、Web Component Tester がサーバー側のコードをテストするときにのみ使用しているサーバーを置き換えることを意味します。これについては、別のgulpタスクを作成したいと考えています。

残念ながら、WCT、Selenium、および現在実行されているサーバーとの関係がわかりません。WCT コマンドで Selenium が起動することはわかりますが、Web サーバーが何で、どのように起動されるのかわかりません。ディレクトリからURLへのマッピングの構成があるため、WCTであると思われますが、それ以外は、コードを読み取ろうとしても手がかりがありません。

クライアントをテストするときに独自のサーバーを実行する方法を誰かが説明できますが、サーバーを実行するときに既に設定されている Web サーバー (nginx) に依存しています。別の構成を選択する方法である場合は、nginx をローカル ホストまたは他のドメインから実行するように設定できます。

編集: runner/webserver.js が高速サーバーを開始し、URL がマップされるため、テスト ランナーのベース ディレクトリと bower_components ディレクトリの両方が /components URL にマップされることがわかりました。

現在私を混乱させているのは、これがどのような状況で実行されるかです。プラグインをロードするとどうにかできるようですが、コードを読んでも理解が不十分です。

4

1 に答える 1

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();
    });

この登録フック関数を使用すると、php スクリプトを実行できるサーバーにプロキシするルート (私の場合は /api) を提供できます。

于 2015-12-06T14:47:18.007 に答える