我一直在尝试为我正在开发的应用程序设置一个测试套件。该应用程序在本地托管,并且在大多数帐户上都可以正常工作。我尝试通过 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 重定向到登录页面。我认为业力可以处理重定向。
编辑:我克隆了angular-seed并原封不动地运行它(除了更改代理 url),结果很好。