【发布时间】: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,因为您可能有seleniumAddress或capabilities错误。
标签: docker protractor headless xvfb bitbucket-pipelines