pytest flaky库与asyncio库不能共存的问题解决

2021-08-21  本文已影响0人  heliping_peter

1 pytest flaky库,是失败后重新执行的功能,对于自动化UI测试非常重要,因为web ui定位不是很稳定,连跑成功率一般不高

2 现在比较流行的web ui定位,都是js的异步库,草根python移植过来,必须使用python的异步库执行,比如pyppeteer

3 执行时发现pytest的asyncio库,与flaky库不能共存,当用例标注为asyncio时,后面的重跑会直接略过。

google发现flaky库之前有人提交了修改的代码,但是没用合并。手动修改后可用。在此记录。修改处如下

import asyncio
def call_and_report(self, item, when, log=True, **kwds):
     self._reset_test_event_loop(item)

   @staticmethod
    def _reset_test_event_loop(item):
        if 'asyncio' in item.keywords and 'event_loop' in item.funcargs:
            # always use new loops for every run
            item.funcargs['event_loop'] = asyncio.new_event_loop()

修改链接

Fix flaky tests with asyncio by wjsi · Pull Request #179 · box/flaky

上一篇下一篇

猜你喜欢

热点阅读