私が開発しているアプリケーションのテストスイートをセットアップしようとして書いています。アプリはローカルでホストされ、ほとんどのアカウントで正常に動作します。AngularJS のサイト、Karma のサイト、および見つけることができる他のほとんどすべてのサイトの指示に従ってカルマをセットアップしようとしましたが、同じエラーが発生し続けます。
ここに私のconfがあります:
urlRoot = '/karma/';
frameworks = ['ng-scenario'];
files = [
ANGULAR_SCENARIO,
ANGULAR_SCENARIO_ADAPTER,
'spec/e2e/*.spec.js'
];
browsers = [
'Firefox',
];
proxies = {
'/': 'http://localhost/web/',
};
port = 9876;
singleRun = false;
junitReporter = {
outputFile: 'logs/e2e.xml',
};
logLevel = LOG_DEBUG;
そして仕様例:
describe('login test', function() {
it('should login', function(){
browser().navigateTo('/');
if(browser().window().path() != '/'){
expect(element('[ng-model="username"]').count()).toBeGreaterThan(0);
input('username').enter('username');
input('password').enter('password');
element('#submit').click();
sleep(3);
}
expect(browser().window().path()).toEqual('/');
});
it('should logout', function(){
element('#quit').click();
element('quit_dialog').click();
sleep(1);
});
});
angular-scenario を介して html ファイルでテストを実行すると、正常に動作し、すべて緑色になります。カルマ経由で実行すると、次のエラーが発生します。
Error: Permission denied to access property 'angular'
クロスドメインの問題だと思いますが、なぜですか? もしそうなら、どうすれば修正できますか?
注: 私のアプリケーションは、誰かをベース URL からログイン ページにリダイレクトします。カルマがリダイレクトを処理できると思いました。
EDIT:Angular-seedのクローンを作成し、(プロキシURLの変更を除いて)そのまま実行しましたが、うまくいきました。