标签: angular-e2e

会话未创建:Chrome版本必须介于71到75之间-在Concourse中运行angular e2e时

在控制台中执行e2e测试时,出现以下错误,好像chromedriver没有更新。在讨论有关chrome版本落后的类似问题时,在我看来,chrome稳定版本正在按预期方式下载(76.0.3809.100)。但是被量角器的webmanager驱动程序拉出的chromedriver版本停留在2.46中。

我尝试将chromedriver从2.46手动更新为76.0.3809.12,但在执行过程中仍回落至2.46。

#!/bin/bash

set -e -u -x

wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add -

sh -c 'echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list'

apt-get update && apt-get install -y google-chrome-stable

cd git-platformUI/ui

npm install

npm set progress=false && npm config set depth 0 && npm cache clean --force

$(npm bin)/ng e2e --configuration=$CONFIG
Run Code Online (Sandbox Code Playgroud)

[07:33:13] E /启动器-未创建会话:Chrome版本必须介于71和75之间(驱动程序信息:chromedriver = 2.46.628388(4a34a70827ac54148e092aafb70504c4ea7ae926),平台= Linux 4.15.0-36-通用x86_64)[07 :33:13] E / launcher-SessionNotCreatedError:未创建会话:Chrome版本必须介于71和75之间(驱动程序信息:chromedriver = 2.46.628388(4a34a70827ac54148e092aafb70504c4ea7ae926),platform = Linux 4.15.0-36-generic x86_64)在parseHttpResponse(/ tmp / build / 357f536d / git-platformUI / …

protractor concourse angular angular-e2e

12
推荐指数
2
解决办法
5539
查看次数

角度迁移(从4到6)e2e --proxy-config无法正常工作

我一直在将我的应用程序从4迁移到6,我无法为我的e2e测试执行我的代理脚本.脚本列表如下所示:

"scripts": {
    "ng": "ng",
    "start": "ng serve",
    "start:tst1": "ng serve --proxy-config config/proxy/proxy.tst1.json",
    "start:tst5": "ng serve --proxy-config config/proxy/proxy.tst5.json",
    ...
    "test:watch": "ng test",
    "lint": "ng lint --type-check true",
    "e2e": "ng e2e",
    "e2e:tst1": "ng e2e --proxy-config config/proxy/proxy.tst1.json",
    "e2e:tst5": "ng e2e --proxy-config config/proxy/proxy.tst5.json",
  },
Run Code Online (Sandbox Code Playgroud)

我不明白的是,启动命令(ng serve)工作得非常好npm run start:tst5.但是,当我尝试执行e2e测试时,npm run e2e:tst5它会抛出错误:Unknown option: '--proxyConfig'.

我的angular.json中的配置如下所示:

angular.json

...
"lmsbo-bo-e2e": {
  "root": "e2e",
  "sourceRoot": "e2e",
  "projectType": "application",
  "architect": {
    "e2e": {
      "builder": "@angular-devkit/build-angular:protractor",
      "options": { …
Run Code Online (Sandbox Code Playgroud)

protractor e2e-testing angular angular-e2e angular6

10
推荐指数
2
解决办法
1882
查看次数

为什么 data-* 属性比普通 ID 属性更适合元素选择?

Cypress和许多其他关于测试 Web 应用程序的帖子建议依赖数据属性,如data-cydata-test-id用于定位元素,而不是依赖于id属性。

我的理解是有两个原因:

  1. 重新使用组件的现代方式可能会导致具有多个相同类型的组件,并且可能导致IDs同一页面上有多个组件- 但这也应该适用于“data-cy”或“data-test-id” ' 属性。
  2. IDs与 相关联时CSS,倾向于更频繁地更改它们,而data-*属性可能不太容易更改。

有人可以对建议多加说明吗?

我正在考虑的另一件事是要求我的开发人员将data-test*属性放在div会使用组件的标签上 - 这样测试属性实际上比组件id属性高一个级别,即使在多个实例相同的情况下也可能派上用场组件被使用。但同样,我不知道为什么id该属性div相比,当标签是坏的data-test*属性。

selenium-webdriver angular-e2e cypress

10
推荐指数
1
解决办法
4514
查看次数

量角器无法在已部署的应用程序上检测到Angular 5

我正在尝试使用Protractor和Cucumber为我的Web应用程序创建一个包含E2E测试的存储库.我从这个存储库开始:https://github.com/spektrakel-blog/angular-protractor-cucumber

当我强迫Protractor将应用程序视为常规网页时,测试运行正常.测试运行器正在与应用程序交互并期待一些结果.问题是,我想让Protractor检测Angular,以便在检查'Then'断言之前等待区域稳定.

这是我的protractor.conf.js:

exports.config = {
  allScriptsTimeout: 30000,
  capabilities: {
    browserName: 'chrome',
    chromeOptions: {
      args: ['--no-sandbox']
    }
  },
  directConnect: true,
  baseUrl: 'http://<ci-server-address>/',

  specs: [
    './e2e/features/*.feature'
  ],

  framework: 'custom',
  frameworkPath: require.resolve('protractor-cucumber-framework'),

  cucumberOpts: {
    require: ['./e2e/steps/**/*.ts'],
    strict: true,
    format: [
      'json:reports/summary.json'
    ],
    dryRun: false,
    compiler: []
  },

  onPrepare() {
    browser.ignoreSynchronization = true;
    require('ts-node').register({
      project: 'e2e/tsconfig.e2e.json'
    });
  }
};
Run Code Online (Sandbox Code Playgroud)

简而言之 - 测试使用以下配置运行,但是当我删除时browser.ignoreSynchronization = true;,我收到以下错误:Timed out waiting for asynchronous Angular tasks to finish after 30 seconds. This may …

cucumber protractor e2e-testing angular angular-e2e

8
推荐指数
1
解决办法
965
查看次数

为什么 nrwl nx 为每个应用程序创建一个单独的 e2e 项目?

当创建一个新的 nx 工作区(即使用 create-nx-workspace)然后生成一个应用程序(使用 ng g app)时,它会在 apps 文件夹中创建一个 app 文件夹(到目前为止还不错)和另一个 app-e2e 文件夹,也在应用程序文件夹内。在我看来,在 src 文件夹旁边的 app 文件夹中创建一个 e2e 文件夹会更有意义,因为 e2e 测试应该属于该特定应用程序,而且它不会以这种方式使应用程序文件夹混乱。

那么这个约定背后的原因是什么?

非常感谢!

angular-e2e nrwl angular-cli-v6

7
推荐指数
1
解决办法
1535
查看次数

在手表模式下运行有角度的端到端测试

当前,每次更改规范文件时,以及每次此命令重建整个项目时,我都会运行ng e2e!有没有一种方法可以运行测试而无需重建整个项目,就像ng test一样。

protractor angular angular-e2e

5
推荐指数
2
解决办法
638
查看次数

使用量角器测试元素在视口中

我想测试我的应用是否滚动到线程页面内的特定帖子.

最初我认为isDisplayed可能有所帮助,并编码如下:

element(by.id(postId)).isDisplayed().then((isDisplayed) => {
  expect(isDisplayed).toBe(true);
});
Run Code Online (Sandbox Code Playgroud)

仔细阅读文档后,isDisplayed不会检查元素是否在视口内.

一种hacky方式是计算各种元素的位置,从可滚动的父级开始(window在我的情况下不是这样).

检查这个是最好的做法吗?

testing protractor e2e-testing angular angular-e2e

5
推荐指数
1
解决办法
594
查看次数

E2E Angular 6 websocket 模拟

我们最近开始使用 Cypress 进行带有 Angular 6 UI 的 E2E 测试。事实证明它很棒,而且在我们看来,它比 Protractor 好用得多。

我们的计划是模拟与服务器的所有交互。对于使用 cy.route() 和夹具的所有 REST/XHR 调用来说,这很容易。

但是,我们也使用网络套接字。事实证明,嘲笑与它的交互并不那么容易。

从我迄今为止所做的研究来看,我能找到的唯一建议是使用 cy.stub()。这在原则上听起来不错,但我找不到对此的任何详细说明,最好是一些使用它来模拟 Web 套接字的示例。

我认为可能有效的另一种方法是使用 Angular 的 TestBed 服务。注入我们自己的服务来处理我们与 Web 套接字的交互。

但是,其中任何一条都是正确的路线吗?任何人都可以提供任何应该做的最佳方式的例子吗?

任何让我朝着正确方向前进以帮助我入门的指示将不胜感激。谢谢。

websocket angular angular-e2e cypress angular6

5
推荐指数
1
解决办法
1177
查看次数

Protractor - 配置文件“tsconfig.json”中的“文件”列表为空。(18002)

我想使用protractor.jsv5.x在我的 Angular项目中实现 e2e 。但是当我运行命令时

\n\n

ng e2e -s false

\n\n

我在下面收到此错误,谁能告诉我如何解决此问题?

\n\n
[15:58:11] E/launcher - Error: TSError: \xe2\xa8\xaf Unable to compile TypeScript\nThe \'files\' list in config file \'tsconfig.json\' is empty. (18002)\n    at load (F:\\Commutatus\\yop-v3\\node_modules\\ts-node\\src\\index.ts:159:13)\n    at service (F:\\Commutatus\\yop-v3\\node_modules\\ts-node\\src\\index.ts:285:32)\n    at shouldIgnore (F:\\Commutatus\\yop-v3\\node_modules\\ts-node\\src\\index.ts:293:21)\n    at Object.require.extensions.(anonymous function) [as .ts] (F:\\Commutatus\\yop-v3\\node_modules\\ts-node\\src\\index.ts:302:11)\n    at Module.load (internal/modules/cjs/loader.js:599:32)\n    at tryModuleLoad (internal/modules/cjs/loader.js:538:12)\n    at Function.Module._load (internal/modules/cjs/loader.js:530:3)\n    at Module.require (internal/modules/cjs/loader.js:637:17)\n    at require (internal/modules/cjs/helpers.js:22:18)\n    at F:\\Commutatus\\yop-v3\\node_modules\\protractor\\node_modules\\jasmine\\lib\\jasmine.js:84:5\n[15:58:11] E/launcher - Process exited with error code 100\n
Run Code Online (Sandbox Code Playgroud)\n\n

这是我的tsconfig.json(位于e2e文件夹内)-

\n\n …

protractor e2e-testing angular angular-e2e

5
推荐指数
1
解决办法
2万
查看次数

运行“ ng e2e”不会向控制台输出任何内容

当我ng e2e在我的angular 7项目根目录中运行时,它不会启动开发服务器,而只是在大约9-10秒后退出。

我试图创建一个新项目并比较package.json和angular.json。所有的角度依赖关系都是相同的版本,angular.json的服务,构建和e2e命令也相同。

ng e2e新创建的项目中运行命令后,控制台中的输出与运行相同ng serve,然后运行所有测试。在我的项目中,此命令没有输出。

谢谢您的帮助

编辑 我正在使用Angluar 7.2.3和CLI 7.3.0

angular-cli angular-e2e

5
推荐指数
0
解决办法
204
查看次数