Angular E2E 访问环境变量
Posted
技术标签:
【中文标题】Angular E2E 访问环境变量【英文标题】:Angular E2E acces environment variables 【发布时间】:2021-11-01 16:25:07 【问题描述】:所以我将 NX 与 Angular 一起使用,并且我有多个应用程序,它们具有两种可能的身份验证方法。因此,我需要进行 E2E 测试,测试两种身份验证方法,因为它们的输入字段不同。所以这将是我的尝试,但我不知道应该如何导入环境变量:
describe('Login Page', () =>
it('Login should succeed', () =>
if (environment.authType === 'password')
[...]
else if (environment.authType === 'oauth')
[...]
);
);
在我的应用中,我使用依赖注入来访问环境,是否可以访问它们?:
import environment from '../environments/environment';
@NgModule(
declarations: [AppComponent],
imports: [
BrowserModule,
AppRoutingModule,
],
providers: [
provide: 'environment', useValue: environment
],
bootstrap: [AppComponent]
)
export class AppModule
【问题讨论】:
【参考方案1】:切换到赛普拉斯进行 e2e 测试,Nx 支持新版本(不确定是否要改装)。
Cypress 具有非常简单灵活的配置选项,请参阅 Configuration 和 Environment 的文档
例如,只需将其添加到 cypress.json
配置文件中
"env":
"authtype": "password",
"login_url": "/login",
"username": "...",
"password": "..."
和测试
describe('Login Page', () =>
it('Login should succeed', () =>
if (Cypress.env('authType') === 'password')
[...]
else if (Cypress.env('authType') === 'oauth')
[...]
)
)
【讨论】:
以上是关于Angular E2E 访问环境变量的主要内容,如果未能解决你的问题,请参考以下文章
使用 Angular 为 NativeScript 设置不同环境变量的最佳方法是啥?
Angular 6,我应该将秘密环境变量放在 environment.ts 文件中吗?
在 Spring Boot 中将 Angular 环境变量传递给编译的静态 Angular 文件