量angular器testing在Jenkins的Docker中随机超时,在本地Docker中正常工作
当使用由Protractor&Jasmine (默认/支持的量angular器运行程序)定义的API时,testing在个别开发人员笔记本电脑上始终可以正常工作。 由于某些原因,在Jenkins CI服务器上运行testing时,它们将会失败(尽pipe在两台主机上都有相同的docker容器,而且非常令人沮丧)。
- 发生此错误: Jasmine规范超时。 重置WebDriver控制stream程。
- 出现此错误: 错误:超时 – 在由jasmine.DEFAULT_TIMEOUT_INTERVAL指定的超时时间内未调用asynchronouscallback。
- 将
getPageTimeout
&allScriptsTimeout
设置为30秒对此没有影响。 - 我尝试将
jasmine.DEFAULT_TIMEOUT_INTERVAL
更改为60秒,以便在此套件中的所有testing中,一旦出现第一个错误,那么每个testing都将等待完整的60秒并超时。
- 将
我已经阅读并重读了量angular器的页面,但是没有一个与这种情况有关。
甚至更奇怪的是,这似乎是某种缓冲区问题 – 起初testing将总是在特定的规格上失败,没有任何关于该规范的看法是错误的。 在debugging过程中,我将seleniumdocker容器从2.53.1-beryllium
升级到了3.4.0-einsteinium
,并且testing仍然失败,但是它们没能成功解决一些问题 – 这意味着在更新中可能会有一些优化,所以能够得到在发出之前做了更多的事情。
我确认,通过重新排列规格的顺序 – 以前一直失败的规格现在已经过去,并且之前通过的testing开始失败(但与重新sorting之前的其他失败大致相同)。
环境:
- 量angular器 –
5.1.2
- selenium/独立铬debugging –
3.4.0-einsteinium
- docker工 –
1.12.5
这个解决scheme最终很简单 – 我首先在铬报告中发现了这个问题,事实certificate它也在docker-selenium repo的首页上列出来,但是文本并不清楚它是什么时候我第一次读它。 (它说selenium没有它就会崩溃,但是我从茉莉花那里得到的错误只是在谈论超时问题,这是相当具有误导性的。)
Chrome显然使用/dev/shm
,显然这在docker中是相当小的。 有从自己的README链接铬和Firefox的解决方法,解释如何解决这个问题。
我有几个testing套件在应用修复程序后失败,但所有的testing套件已经运行并在最后一天传递,所以我认为这实际上是问题,这个解决scheme的工作原理。 希望这可以帮助!
- 如何在Laravel的Docker容器中运行和安装Protractor E2Etesting?
- 为了开发目的,需要“app / dist”作为卷的一部分时,不能在容器中生成“app / dist”
- 无法从VS2017debuggingdocker中的Angular应用程序
- Docker Selenium – testing通过Chrome,但不是Firefox
- 如何在Docker机器上运行Angular 2应用程序?
- 如何在Docker容器中启动一个宽浏览器,进行量angular器testing
- 在Docker中使用自动构build不能使用Bootstrap样式?
- net :: ERR_CONTENT_LENGTH_MISMATCH在docker云上的angular度2上
- 在Docker中运行busybox httpd的angular2 webpack应用程序