Angular E2E访问环境变量

Angular E2E acces environment variables

所以我将 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 {}

切换到 Cypress 进行 e2e 测试,Nx 支持它用于新构建(不确定改装)。

Cypress 具有非常简单灵活的配置选项,请参阅 Configuration and 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') {
      [...]
  })
})