【问题标题】:Angular CLI use configuration with E2E testsAngular CLI 使用配置与 E2E 测试
【发布时间】:2018-06-07 14:50:56
【问题描述】:

我正在将 Angular CLI 项目更新到 v6

我遇到的问题是在 v6 之前我可以使用命令 ng e2e -e=e2e 并且测试可以在给定的环境下正常运行。在 v6 环境中更改为配置,但 ng e2e -c=e2e 不起作用。

我得到的错误是:

Configuration 'e2e' could not be found in project 'admin-e2e'.
Error: Configuration 'e2e' could not be found in project 'admin-e2e'.
at Architect.getBuilderConfiguration (c:\_inmoment\admin\client\node_modules\@angular-devkit\architect\src\architect.js:102:23)
at MergeMapSubscriber._loadWorkspaceAndArchitect.pipe.operators_1.concatMap [as project] (c:\_inmoment\admin\client\node_modules\@angular\cli\models\architect-command.js:64:55)
at MergeMapSubscriber._tryNext (c:\_inmoment\admin\client\node_modules\rxjs\internal\operators\mergeMap.js:122:27)
at MergeMapSubscriber._next (c:\_inmoment\admin\client\node_modules\rxjs\internal\operators\mergeMap.js:112:18)
at MergeMapSubscriber.Subscriber.next (c:\_inmoment\admin\client\node_modules\rxjs\internal\Subscriber.js:103:18)
at TapSubscriber._next (c:\_inmoment\admin\client\node_modules\rxjs\internal\operators\tap.js:109:26)
at TapSubscriber.Subscriber.next (c:\_inmoment\admin\client\node_modules\rxjs\internal\Subscriber.js:103:18)
at MergeMapSubscriber.notifyNext (c:\_inmoment\admin\client\node_modules\rxjs\internal\operators\mergeMap.js:141:26)
at InnerSubscriber._next (c:\_inmoment\admin\client\node_modules\rxjs\internal\InnerSubscriber.js:30:21)
at InnerSubscriber.Subscriber.next (c:\_inmoment\admin\client\node_modules\rxjs\internal\Subscriber.js:103:18)

我尝试将配置部分添加到 angular.json 的 e2e 部分。

我尝试将另一个部分添加到始终使用 e2e 配置的项目的架构师部分。

有人知道如何在 e2e 测试中使用 --configuration 标志吗?

只是不确定我错过了什么。

【问题讨论】:

    标签: angular


    【解决方案1】:

    首先从 e2e 的选项部分中删除 "devServerTarget": "project:serve" 并尝试将其放置在您需要的特定配置中。在这种情况下,如果您在本地运行测试,请使用它,对于 Jenkins 或 CI,请将其删除并放置 baseUrl 以定位特定 url。

    同样在此配置之后,您可以从命令行传递 --base-url 以动态更改来自 jenkins 的基本 url 为 e2e-ci

    ng e2e --configuration=e2e-ci --suite=home --base-url="http://google.com"
    

    下面是配置

    "project-e2e": {
      "root": "e2e/",
      "sourceRoot": "e2e",
      "projectType": "application",
      "prefix": "",
      "architect": {
        "e2e": {
          "builder": "@angular-devkit/build-angular:protractor",
          "options": {
            "protractorConfig": "./protractor.conf.js"
            // remove "devServerTarget": "project:serve" here. it normally for all
          },
          "configurations": {
            "production": {
              "devServerTarget": "project:serve:production",  // use it here for local test to pull localhost:4200 and run test on it
              "serve": false,
              "webdriverUpdate": false
            },
            "e2e-ci": { // this one is for jenkins/CI so no dev server require but pass the baseUrl. see there is no devServerTarget option here
              "protractorConfig": "./protractor.conf.js",  
              "baseUrl": "https://specificurltotest.org"
            }
          }
        },
        "lint": {
          "builder": "@angular-devkit/build-angular:tslint",
          "options": {
            "tsConfig": "e2e/tsconfig.e2e.json",
            "exclude": [
              "**/node_modules/**"
            ]
          }
        }
      }
    }
    

    【讨论】:

    • 非常感谢!有没有很好的文档来解释这一切?我迷失在这么多不同的模块、配置和“你必须知道的事情”中。
    • 我遇到了同样的问题,我不需要删除默认选项,只需在我的 e2e-ci 配置中添加一个空的 devServerTarget 属性即可。
    【解决方案2】:

    我想通了。如果您需要使用不同的配置,这将不起作用。但是,如果您想将一个配置用于您的 e2e 测试,那么您就是这样做的。

    在您的文件的 angular.json 的主要部分有配置。您可以参考任何这些配置!我所要做的就是更新 e2e 测试的 devServerTarget 部分以引用正确的构建配置。

    所以改变这个:

    "e2e": {
      "builder": "@angular-devkit/build-angular:protractor",
      "options": {
        "protractorConfig": "./protractor.conf.js",
        "devServerTarget": "admin:serve"
      }
    }
    

    到这里:

    "e2e": {
      "builder": "@angular-devkit/build-angular:protractor",
      "options": {
        "protractorConfig": "./protractor.conf.js",
        "devServerTarget": "admin:serve:e2e"
      }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-04-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多