我目前一直在将我的应用程序从 4 迁移到 6,但我无法为我的 e2e 测试执行代理脚本。
脚本清单如下所示:
"scripts": {
"ng": "ng",
"start": "ng serve",
"start:tst1": "ng serve --proxy-config config/proxy/proxy.tst1.json",
"start:tst5": "ng serve --proxy-config config/proxy/proxy.tst5.json",
...
"test:watch": "ng test",
"lint": "ng lint --type-check true",
"e2e": "ng e2e",
"e2e:tst1": "ng e2e --proxy-config config/proxy/proxy.tst1.json",
"e2e:tst5": "ng e2e --proxy-config config/proxy/proxy.tst5.json",
},
我不明白的是,例如启动命令(ng serve)工作得很好npm run start:tst5
。但是当我尝试执行 e2e 测试时,npm run e2e:tst5
它会抛出错误:Unknown option: '--proxyConfig'
.
我的angular.json中的配置如下所示:
角.json
...
"lmsbo-bo-e2e": {
"root": "e2e",
"sourceRoot": "e2e",
"projectType": "application",
"architect": {
"e2e": {
"builder": "@angular-devkit/build-angular:protractor",
"options": {
"protractorConfig": "e2e/protractor.conf.js",
"devServerTarget": "lmsbo-bo:serve"
},
"configurations": {
"production": {
"devServerTarget": "lmsbo-bo:serve:production"
}
}
},
...
编辑
我得到了 e2e 测试,其中添加了以下内容angular.cli
:
"serve": {
"builder": "@angular-devkit/build-angular:dev-server",
"options": {
"browserTarget": "lmsbo-bo:build",
"proxyConfig": "config/proxy/proxy.tst5.json" <== **added this** line
},
"configurations": {
"production": {
"browserTarget": "lmsbo-bo:build:production"
}
}
},
但是这种解决方法无论如何都不能令人满意。每次我想针对另一个环境执行时,我都必须更改这行代码。我宁愿通过命令行来管理它,方法是编写如下内容:ng serve --proxy-config config/proxy/proxy.tst5.json
.