Testing 使用Karma在HTTPS上测试外部托管的应用程序
我有一个AngularJS/Flask应用程序,如果你还没有使用HTTPS,它(服务器端)会将你重定向到HTTPS版本。我想使用Karma测试使用HTTPS的应用程序,顺便说一句,如果不在我自己的计算机上运行HTTPS服务器,我无法在本地进行测试(这很麻烦),所以我将我的应用程序推到了一个Heroku站点(比如在Testing 使用Karma在HTTPS上测试外部托管的应用程序,testing,https,karma-runner,Testing,Https,Karma Runner,我有一个AngularJS/Flask应用程序,如果你还没有使用HTTPS,它(服务器端)会将你重定向到HTTPS版本。我想使用Karma测试使用HTTPS的应用程序,顺便说一句,如果不在我自己的计算机上运行HTTPS服务器,我无法在本地进行测试(这很麻烦),所以我将我的应用程序推到了一个Heroku站点(比如在mine.herokuapp.com)上,该站点具有SSL。现在,我正试图用一个配置文件对这个外部站点运行Karma测试,如 var PROXYPATH = 'mine.herokuap
mine.herokuapp.com
)上,该站点具有SSL。现在,我正试图用一个配置文件对这个外部站点运行Karma测试,如
var PROXYPATH = 'mine.herokuapp.com';
files = [
...
];
urlRoot = '/_karma_/';
singleRun = true;
browsers = ['Chrome'];
proxies = {
'/': PROXYPATH
};
但是,当我尝试运行测试时,在导航到应用程序时会出现错误
sandboxerror:Application document not accessible
。我肯定Heroku那边没有什么问题;我可以很好地导航到那里。有没有办法在Karma中测试HTTPS,还是我在白费力气?我在IIS中运行我的开发站点时遇到了这个问题,它会将所有HTTP请求重定向到HTTPS
我还没有开始工作,但我现在可以让它至少在Karma runner的iframe中加载站点
我必须指定主机名,并允许使用无效的SSL证书proxyValidateSSL
这是我的配置(GruntJS)格式
config.set({
frameworks: [],
files: [
'assets/angular-scenario.js',
'node_modules/karma-ng-scenario/lib/adapter.js',
'tests/e2e/**/*Spec.js'],
urlRoot: '/__e2e/',
hostname: '10.0.0.3',
proxyValidateSSL: false,
proxies: {
'/': 'https://10.0.0.3/'
},
browsers: ['Chrome']
});
我遇到的下一个问题是,我使用X-Frame-Options:DenyHTTP头阻止外部站点将mysite注入iFrame内部的站点
我必须将其更改为X-Frame-Options:SameOrigin,然后我的开发站点将加载到Chrome中的Karma runner中
我的问题
app.config(['$routeProvider', function ($routeProvider) {
$routeProvider
.when('/Foo', {
templateUrl: 'foo.tpl.html',
controller: 'FooCtrl',
controllerAs: 'ctrl'
});
}]);
然后我有了下面的Jasmine规范,navigateTo工作正常,但它挂在expect()行上,永远不会返回
describe('My App', function () {
beforeEach(function () {
browser().navigateTo('/');
});
it('should redirect to Login', function () {
expect(browser().location().url()).toBe('/Login'); // <- Hangs here
});
});
与
app.config(['$routeProvider', function ($routeProvider) {
$routeProvider
.when('/Foo', {
templateUrl: 'foo.tpl.html',
controller: 'FooCtrl',
controllerAs: 'ctrl'
});
}]);