我有两个单独的项目。一个前端(Angular V6)和另一个后端(Springboot v2)。
我正在尝试使用Protractor进行e2e测试,但是我无法在前端项目中正确配置后端URL。
我的protractor.conf.js:
const { SpecReporter } = require('jasmine-spec-reporter');
exports.config = {
allScriptsTimeout: 11000,
specs: [
'./src/**/*.e2e-spec.ts'
],
capabilities: {
'browserName': 'chrome'
},
directConnect: true,
baseUrl: 'http://localhost:4200/',
framework: 'jasmine',
jasmineNodeOpts: {
showColors: true,
defaultTimeoutInterval: 900000000,
print: function() {}
},
onPrepare() {
require('ts-node').register({
project: require('path').join(__dirname, './tsconfig.e2e.json')
});
jasmine.getEnv().addReporter(new SpecReporter({ spec: { displayStacktrace: true } }));
}
};
后端项目正在此地址上运行:http://localhost:8080/
frotend项目正在以下地址运行:http://localhost:4200/
打开测试页时,前端项目尝试访问以下URL的服务:http://localhost:4200/car/
并且应该在此URL:http://localhost:8080/car
因此测试失败,因为没有这样的URL:http://localhost:4200/car。
所以问题是:有什么方法可以在前端项目中配置后端URL?
是的,您可以设置角度代理以将某些端点转发到您的后端。创建proxy.conf.js
const PROXY_CONFIG = [
{
context: [
"/car",
"/anything"
],
target: "http://localhost:8080",
secure: false
}
]
module.exports = PROXY_CONFIG;
并将其添加到您的angular.cli服务配置中
....
"architect": {
"serve": {
"builder": "@angular-devkit/build-angular:dev-server",
"options": {
"proxyConfig": "src/proxy.conf.js"
},