很长一段时间在 Azure DevOps 运行 中使用 ng e2e --configuration=e2e

ng e2e --configuration=e2e in Azure DevOps running for a long time

我有一个 angular 网页,我试图在其中 运行 在 Azure DevOps 管道中进行 E2E 测试。

但是我的端到端测试 运行ning 了很长时间,没有产生任何结果。

不确定我遗漏了什么,我在下面分享了我的配置。

angular.json

"e2e": {
         "fileReplacements": [
              {
                      "replace": "src/app/core/services/auth.service.ts",
                      "with": "src/app/core/services/auth.service.mock.ts"
               }
            ]
}

package.json

"scripts": {
    "ng": "ng",
    "start": "ng serve",
    "build": "ng build",
    "build-prod": "ng build --prod",
    "test": "ng test",
    "lint": "ng lint",
    "e2e": "ng e2e --configuration=e2e"  
 }

protractor.conf.js

capabilities: {
    browserName: 'chrome',
    chromeOptions: {
      args: ["--incognito"]
    }
  },
  chromeDriver: '../node_modules/protractor/node_modules/webdriver-manager/selenium/chromedriver_87.0.4280.88',
  baseUrl: 'http://localhost:4200/login',
  framework: 'custom',
  ignoreUncaughtExceptions: true,
  frameworkPath: require.resolve('protractor-cucumber-framework'),

我的管道 Yml:

- task: Npm@1
      displayName: 'npm Install'
      inputs:
        command: 'install'
        workingDir: './'
    - script: | 
                $(Agent.BuildDirectory)/s/node_modules/protractor/bin/webdriver-manager update --versions.chrome=chromedriver_87.0.4280.88
    - task: Npm@1
      displayName: 'E2E Testing'
      inputs:
        command: 'custom'
        workingDir: './'
        customCommand: 'run e2e'

在运行自动化测试时,推荐使用浏览器的headless模式

因此您可以在 protractor.conf.js 文件中添加 args: ["--headless", "--disable-gpu", "--incognito"]

e2e 测试可能需要很长时间才能完成,因为浏览器需要加载页面上的元素。因此,在某些情况下,可能会因为无法加载元素而卡住。无头测试摆脱了这种加载时间,使您可以显着缩短测试时间。在我们的无头测试中,我们发现测试执行时间减少了 30%。