繁体   English   中英

文件替换不适用于 e2e 测试

[英]Filereplacements not working for e2e testing

我想在运行 e2e 测试的 dockerized 版本时选择文件src/enironments/environment.docker.ts enironments src/enironments/environment.docker.ts

我在 angular.json 中添加了一个新的 e2e 部分

"myapp-e2e": {
   ...
},
"myapp-e2e-docker": {
  "root": "e2e",
  "sourceRoot": "e2e",
  "projectType": "application",
  "architect": {
    "e2e": {
      "builder": "@angular-devkit/build-angular:protractor",
      "options": {
        "protractorConfig": "./protractor.conf.js",
        "devServerTarget": "myapp:serve:docker"
      }
    }
  }

我在我的服务部分添加了一个配置:

    "serve": {
      "builder": "@angular-devkit/build-angular:dev-server",
      "options": {
        "browserTarget": "myapp:build"
      },
      "configurations": {
        "production": {
          "browserTarget": "myapp:build:production"
        },
        "docker": {
          "browserTarget": "myapp:build:docker"
        }
      }
    }

以及我的构建部分的配置:

        "docker": {
          ...
          "fileReplacements": [
            {
              "replace": "src/environments/environment.ts",
              "with": "src/environments/environment.docker.ts"
            }
          ]
        }

然后我像这样调用我的 e2e conf

ng e2e myapp-e2e-docker

它似乎符合我的预期。 例如,如果我拼错了 environment.docker.ts 文件的名称,它会抱怨找不到它。 但是,在运行时读取环境的内容,我总是从src/environments/environment.ts找到值

这是某种错误吗? ng serve工具的功能似乎不适用于ng e2e

我的 package.json 文件:

"devDependencies": {
  "@angular-devkit/build-angular": "0.12.1",
  "@angular/language-service": "6.1.0",
  "@types/jasmine": "3.0.0",
  "@types/jasminewd2": "2.0.6",
  "@types/node": "6.0.60",
  "codelyzer": "4.2.1",
  "jasmine-core": "3.3.0",
  "jasmine-spec-reporter": "4.2.1",
  "karma": "3.1.1",
  "karma-chrome-launcher": "2.2.0",
  "karma-cli": "1.0.1",
  "karma-coverage-istanbul-reporter": "2.0.4",
  "karma-jasmine": "2.0.1",
  "karma-jasmine-html-reporter": "1.4.0",
  "protractor": "5.3.0",
  "ts-node": "7.0.1",
  "tslint": "5.3.2",
  "typescript": "2.9.2"
}

这需要几个间接级别。 这是我所做的(全部在 angular.json 中,希望我所有这些 XPath 都正确):

/projects/app/architect/build/configurations下添加以下内容:

"test": {
  "fileReplacements": [
    {
      "replace": "src/environments/environment.ts",
      "with": "src/environments/environment.e2e.ts"
    }
  ]
}

然后在/projects/app/architect/serve/configurations下添加以下内容:

"test": {
  "browserTarget": "app:build:test"
},

最后是/projects/app-e2e/architect/e2e/configurations

"test": {
  "devServerTarget": "app:serve:test"
}

然后我通过package.jsone2e脚本使用ng e2e --configuration=test运行测试

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM