【问题标题】:Protractor e2e tests with bitbucket pipelines使用 bitbucket 管道进行量角器 e2e 测试
【发布时间】:2017-05-28 15:57:57
【问题描述】:

我已经编写了所有 e2e 测试,并且它们在我的本地机器和 Codeship 上成功运行。 我想将我们的 CI 从 codeship 转移到 Bitbucket 管道。所以我用测试环境创建了自己的 Docker 镜像。 当我在本地工作区中运行 docker conatiner 时,测试工作正常,但是当构建在 bitbucket 管道中运行时,所有测试都因超时而失败,说在页面上找不到角度。 服务器肯定已启动并在容器中运行 ant 测试也开始了,但问题在于页面打开。 有没有人对此有任何想法? 如果需要任何代码,我会发布所有需要的内容。

【问题讨论】:

  • 您是在测试 Angular 应用程序还是常规 Web 应用程序?
  • 这是一个角度应用程序
  • 就我的经验而言,在 Docker 中运行 E2E 时,Selenium Webdriver 需要一些时间来启动,所以当你的测试运行时,你的应用程序还没有加载到浏览器中(这就是 Angular 错误的来源)。尝试使用您在 BitBucket 中的相同配置运行测试。我的猜测是映像启动并且测试立即开始运行,并且不要等待映像内的所有内容启动。
  • 有道理,但我不确定。在 docker compose 文件中,我首先运行几个 bash 脚本(环境变量导出等),然后我启动我的应用程序,然后我检查服务器是否已启动,然后才启动我的测试。我认为页面上传可能会有一些延迟。就像我之前写的那样,我在工作区本地运行的同一个容器和测试工作正常。
  • 我建议您查看protractor.conf.js,因为您可能有seleniumAddresscapabilities 错误。

标签: docker protractor headless xvfb bitbucket-pipelines


【解决方案1】:

所以我设法解决了我的问题。 不确定它是否对其他人有用,但问题出现在我的环境设置中。 我忘了添加 webpack 服务的启动,它应该生成一些所需的服务器文件和服务器源的缩小文件。 所以服务器启动成功,但是从浏览器请求路由失败,因为它无法找到请求的文件。

【讨论】:

  • 嘿,这几天我一直在为同样的问题苦苦挣扎。我有一个运行量角器 e2e 测试的 Angular 4 应用程序,在本地也运行良好。我什至有一个用于我的 Angular 项目的 Docker 映像和另一个运行我的量角器测试的 Docker 映像。你能指导我在管道上运行我的测试吗?我不能执行“docker run”,因为它在管道中不可用,也不能运行“npm test”,因为我需要在 localhost:4200 中提供应用程序,但是如果我运行“npm start”,“npm test”将永远不会触发
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-25
  • 1970-01-01
  • 2015-06-11
  • 1970-01-01
  • 2017-09-30
相关资源
最近更新 更多