2016-10-18 1 views
2

私はProtractorを使用して、Gruntを使用してAngularJSアプリでエンドツーエンドのテストを実装しています。私のアプリはAPI呼び出しを処理するためにプロキシパスを使用します。その結果、テストの実行中にhttp://localhost:9000/apiが処理されないため、API呼び出しが失敗します。プロキシパスベースのAngularJSアプリで分度器を使用

Iは/apiプロキシパスを処理するためgrunt-connect-proxyプラグインを試みたが、それは単に(HTTPコード301)リダイレクトlocalhost:9000/apimyserver.com/apiに、プロキシパスの挙動を模倣しない(とアプリがいずれかの動作しません)。ここで

はGruntfile構成です:

exports.config = { 
    specs: ['./suites/*.js'], 
    baseUrl: 'http://localhost:9000', 
    maxSessions: 1, 
    multiCapabilities: [{ 
     browserName: 'chrome' 
    }], 
}; 

どのようにテストにデスクトップマシンの両方で動作し、リモートをできるように、このケースを処理します:

connect: { 
    options: { 
     port: 9000, 
     hostname: 'localhost', 
     base: ['<%= globals.appFolder %>/'], 
     logger: 'dev', 
    } 
}, 

protractor: { 
    options: { 
     configFile: 'tests/e2e/protractor.config.js', 
     keepAlive: true, 
     noColor: false, 
     args: {} 
    }, 
    e2e: { 
     options: { 
      args: {} 
     } 
    } 
} 

そしてここでは、分度器の設定ファイルです機械(Jenkinsなど)?

答えて

1

作男コネクト・プロキシに関連this issueによると、これはHTTPSエンドポイントを扱うときに発生するバグです。代わりにmaster/バージョンを使用してください。

Package.json:

"grunt-connect-proxy": "https://github.com/drewzboto/grunt-connect-proxy#master", 

Gruntfile:

proxies: [{ 
    context: '/api', 
    host: 'myserver.com', 
    port: 443, 
    https: true 
}]