3

アプリを実行していますhttp://localhost:6543- それは Pyramid アプリです。

  • このアプリは / で AngularJS アプリを提供します
  • このアプリは socket.io 自体を使用します

問題は 、これらのツールを使用してそのアプリケーションをテストすることは可能ですか?

私は自分のscenario.jsファイルにこれを持っています:

beforeEach(function() {
   browser().navigateTo('http://localhost:6543/');
});

しかし、testacular を (runまたはでstart) 起動した瞬間に、次のエラー メッセージが表示されます。

Chrome 23.0 registration: should delete all cookies when user clicks on "remove all" button FAILED
browser navigate to 'http://localhost:6543/'
/home/abourget/myapp/jstests/scenarios/registration_scenario.js:9:5: Sandbox Error: Application document not accessible.

iframeクロスオリジン違反になるため、ブラウザーが のドキュメントにアクセスできないことを理解しています。

私が試したこと:

  • Testacular Web サーバー (proxiesオプションを使用) を使用してアプリにプロキシしますが/、Testacular 自体のフレームワークの提供と競合します。また、両方のアプリが最終的に使用しようとし/socket.io、それも競合します。
  • 逆のことを行う (Testacular のサーバーにプロキシするようにアプリを微調整する) と、同じ問題が発生し/socket.ioます。

ところで、これらの素晴らしいツールをありがとう!

4

2 に答える 2

5

持つ代わりに

beforeEach(function() {
    browser().navigateTo('http://localhost:6543/');
});

これをに変更

beforeEach(function() {
    browser().navigateTo('/');
});

次に、testacular-e2e.conf.js ファイルに以下を追加します。

proxies = {
    '/': 'http://localhost:6543/'
};

まだ他の問題があるかもしれませんが、「サンドボックス エラー: アプリケーション ドキュメントにアクセスできません」を再現できます。Pyramid Hello World アプリとこの構成の問題だけのメッセージ。

于 2012-12-10T02:17:54.083 に答える
2

同様の問題があり、すでにプロキシと navigateTo('/') がありました。socket.io をロードするときの競合を避けるために、いくつかの urlRoot を追加する必要がありました。「/e2e」を追加するだけで、競合を解決するのに十分でした。実際、testacular を実行すると、この問題に対して警告メッセージが表示されました。

于 2013-03-20T12:04:20.243 に答える