Ser*_*pin 21 environment-variables protractor e2e-testing angular
我使用Angular环境变量来配置API端点:
.\src\environments:
environment.ts
environment.test.ts
environment.prod.ts
Run Code Online (Sandbox Code Playgroud)
环境文件包含以下设置,这些设置对于本地开发和CI服务器是不同的:
export const environment = {
...
apiUrl: "https://api.sample.com"
};
Run Code Online (Sandbox Code Playgroud)
当我需要构建或启动应用程序时,这工作正常.我可以简单地指定环境参数:
ng serve --environment=test
Run Code Online (Sandbox Code Playgroud)
......但是在运行e2e Protractor测试时似乎无法设置特定的环境.以下命令只是忽略了环境(根据此注释似乎是预期的).始终使用默认环境:
ng e2e --environment=test // same as `ng e2e`
Run Code Online (Sandbox Code Playgroud)
有没有其他方法可以使用特定环境运行测试?
Lou*_*med 13
使用新的Angular 6 angular.json配置文件:我能够environment.test.ts在我的e2e测试中使用我的文件.我不得不在我的项目上创建一个新的架构师,我打电话给它serve-e2e.
"serve-e2e": {
"builder": "@angular-devkit/build-angular:dev-server",
"options": {
"browserTarget": "q-desktop-v2:build:test"
}
}
Run Code Online (Sandbox Code Playgroud)
我的构建:test config使用"fileReplacements"配置:
"test": {
"fileReplacements": [
{
"replace": "src/environments/environment.ts",
"with": "src/environments/environment.test.ts"
}
]
}
Run Code Online (Sandbox Code Playgroud)
然后在我的项目-e2e中,我使用我为devServerTarget定制的"serve-e2e"选项:
"options": {
"protractorConfig": "./protractor.conf.js",
"devServerTarget": "q-desktop-v2:serve-e2e"
}
Run Code Online (Sandbox Code Playgroud)
如果应用程序在测试环境中运行,这可以轻松添加或忽略特定代码:
if (!environment.test) {
// do something
}
Run Code Online (Sandbox Code Playgroud)
通过将其添加到.angular-cli.json,我能够成功使用不同的环境
"environments": {
"dev": "environments/environment.ts",
"test": "environments/environment.test.ts",
"prod": "environments/environment.prod.ts"
}
Run Code Online (Sandbox Code Playgroud)
然后打电话
ng e2e --environment test
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6716 次 |
| 最近记录: |